我有一个即将启动的网站,并且已经提出了 URL 规范化的请求。我想知道在我的 RoR 应用程序中让http://www.example.com的所有请求永久重定向(301)到http://example.com的最佳方式是什么?或者,换一种方式问,我怎样才能去掉“www”。从所有生成的 url、路径、请求?
仅供参考,这是一个 Rails 3 应用程序。
我有一个即将启动的网站,并且已经提出了 URL 规范化的请求。我想知道在我的 RoR 应用程序中让http://www.example.com的所有请求永久重定向(301)到http://example.com的最佳方式是什么?或者,换一种方式问,我怎样才能去掉“www”。从所有生成的 url、路径、请求?
仅供参考,这是一个 Rails 3 应用程序。
这是使用网络服务器中的重写规则完成的。
对于 nginx:http ://techtitbits.com/2010/07/wwwno-www-rewrite-rules-for-nginx/
对于 Apache: http: //www.boutell.com/newfaq/creating/withoutwww.html
另请注意,您应该将两条 A 记录添加到您的 DNS 区域文件中,如下所示
@ IN A 10.0.0.1
www IN A 10.0.0.1
将 10.0.0.1 替换为您的 IP 地址。
对于 Apache,您可以将以下代码添加到您的 ROR 应用程序中的 /public/.htaccess 文件中。我在我的大多数应用程序中都使用它,因为我不喜欢“www”
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]
希望这可以帮助