2012-03-22 88 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網址,這是谷歌的最佳解決方案。