用户未登录时如何屏蔽我的目标网页?

Dav*_*cio 7 ruby-on-rails nginx web

我在https://example.com上获得了基于ruby on rails的web平台

我的登陆和关于页面托管在其他主机的Wordpress中,网址https://examplecms.com.

我想要实现的是让用户访问https://example.com get masked https://examplecms.com,除非他们登录时我的平台的仪表板在根路径/中路由.

我想避免的是用户在URL https://examplecms.com中看到.

我到目前为止尝试了几个技巧:

  • 在我的家/索引操作控制器中,如果用户未登录,我已重定向到https://examplecms.com.但这会失败,因为它仍然在用户的浏览器中显示CMS网址.
  • 在指向CMS站点的主/索引视图的渲染中使用Iframe.它的工作原理是因为它仍然可以正确显示我的网站网址,但这似乎有点可疑,但深度链接和导航似乎无法正常工作.

我一直在考虑在代理服务器级别,使用.htaccess或甚至使用DNS策略,但我无法找到这些策略的解决方案来检测用户何时登录?

有任何想法吗?

谢谢

更新:堆栈:

  • Ubuntu的
  • Ruby on Rails
  • Nginx +乘客
  • Amazon Ec2 + Cloudflare DNS

cns*_*nst 2

您可以使用http://nginx.org/r/proxy_passLocation以静默方式将用户重定向到其他页面,而无需更改在浏览器字段中向用户显示的 URL 。

要检查用户是否已登录,您可以通过http://nginx.org/r/error_page安装错误处理程序,仅在正常页面返回错误时重定向用户(例如,如果正常proxy_pass结果返回响应403 Forbidden,然后proxy_pass根据错误处理程序将用户的请求重定向到替代上游)。