2012-03-22 86 views
0

我需要使用正确的URL参数将非www重定向到www。谷歌索引中已有很多网址(非www)。我需要一个配置,该参数在url中重定向正确。举个例子:使用正确的URL重定向非www到www参数

nice2stay.com/houses/1 

重定向到:

www.nice2stay.com/nl/holidayhouses/nameofthehouse 

想法?

我刚刚在我的开发笔记本电脑上试过下面的代码。

约束(:主机=> “本地主机”)做 根:为=>重定向( “HTTP://www.localhost:3000”) 匹配 '/ *路径',:到=>重定向{| PARAMS | “http://www.localhost/# {params [:path]}”} end

这个工作当请求的url是根域,但不是当请求url是localhost时:/ houses是路径配置不正确?

回答

1

编辑:对不起,我没有带见过rails标签...以下是仍然有效:你可以用你前面的服务器做(Apache或Nginx的)。我想你也可以在应用程序控制器中执行301重定向。


这取决于您的服务器。

如果你是在Apache,确保mod_rewrite安装(这是大多数共享主机的情况下),在您的主机的根目录创建一个.htaccess文件,并在其中键入以下重写规则:

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
    RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
</IfModule> 

这将强制www.前缀,并做301重定向从非www到www网址,这是谷歌的最佳解决方案。