我的rails应用程序似乎在它在www.example.com上回答时破了,它以前只用example.com工作正常...但是我最近移动了服务器并且想知道重定向所有服务器的最佳方法www.example.com要求转到http://example.com/.../
感谢。
答案 0 :(得分:1)
假设您启用了mod_rewrite
,这应该可以解决问题 RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example\.com
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
答案 1 :(得分:0)
这取决于您的服务器设置,有不同的方法。您可以通过DNS将DNS命名为DNS到根域,以一种方式。如果您在Apache后面运行Rails,那么您可以使用mod_rewrite在Apache中执行它。如果您使用例如mongrel(或webbrick)直接将网络请求带入Rails,那么您可能必须配置这些服务器,或者可能必须使用Rails路由?
希望有所帮助,
adricnet
答案 2 :(得分:0)
根据Apache's name-based virtual host documentation,第一个虚拟主机是默认主机。我使用它来使第一个条目成为一个全能,将每个“未定义”请求重定向到主站点:
# Default catch-all
<VirtualHost *:80>
# Note the lack of a ServerName
RewriteRule ^(.*)$ http://www.example.com$1 [redirect=permanent]
</VirtualHost>
# Site 1 - www.example.com
<VirtualHost *:80>
ServerName www.example.com
[ the rest of the site config ]
</VirtualHost>
要获得额外的功劳,您可以设置通配符DNS条目,以便将每个未定义的主机(例如asdfasdfasdfas.example.com)重定向到www.example.com。
答案 3 :(得分:0)
你可能不想听,但我建议修理一下。你已经在你的应用程序中的某个地方对你的域进行了硬编码,可能在你的路由中,但是如果没有错误的具体信息就无法判断,你需要删除它,这样你或其他维护者就不会将来必须再次处理它。