乘客(Ruby on Rails)中的301重定向从根域到www子域?

Posted

技术标签:

【中文标题】乘客(Ruby on Rails)中的301重定向从根域到www子域?【英文标题】:301 redirect in Passenger (Ruby on Rails) from root domain to www sub domain? 【发布时间】:2011-06-22 22:37:35 【问题描述】:

如何在乘客中创建永久重定向 (301)?其他地方有关于如何在 Rails 中执行重定向的帖子,但在服务器级别而不是在 Rails 级别执行重定向似乎更好。

有什么线索吗?

谢谢!

【问题讨论】:

【参考方案1】:

服务器级重定向是通过 HTTP 服务器完成的,而不是应用程序服务器。下面是一些例子:

阿帕奇

<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerAlias example.com
    Redirect Permanent / http://www.example.com
</VirtualHost>

Nginx

server 
  server_name example.com;
  rewrite ^/(.*) http://www.example.com/$1 permanent;

Lighttpd

$HTTP["host"] =~ "^example\.com$" 
  url.redirect = ( "^/(.*)" => "http://www.example.com/$1" )

虽然技术上可以稍后在堆栈中实现这一点,就像使用 Rack 应用程序一样,但尽早这样做以节省服务器 CPU 周期是最有意义的。有时您必须稍后再执行此操作,例如使用 Heroku 等不允许您更改 HTTP 设置的主机,但如果您可以选择在此处执行此操作,我建议您这样做。

【讨论】:

Apache 文件配置通常在哪里? @AlexanderSupertramp 这取决于一些不同的事情。 ***.com/q/12202021/1249【参考方案2】:

您确定要在乘客级别而不是在 nginx/Apache 级别...也就是说,为什么重定向甚至会在堆栈中走那么远。

根据您使用的服务器,网络上有资源可以告诉您如何完成此操作。

【讨论】:

以上是关于乘客(Ruby on Rails)中的301重定向从根域到www子域?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby-on-Rails:如何摆脱“你被重定向”页面

从 ruby​​ on rails 重定向到 angular 给 preflight 的响应是无效错误

无法保存其他表中的数据。 Ruby on Rails 5

Rails Elastic Beanstalk nginx 301 重定向

Ruby on rails omniauth-twitter 和设计

ruby 使用Rails和Ruby重定向“安全”。