乘客(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 重定向到 angular 给 preflight 的响应是无效错误
Rails Elastic Beanstalk nginx 301 重定向