[英]redirect non-www to www with correct URL params
我需要使用正確的URL參數將非www重定向到www。 Google索引中已經有很多網址(非www)。 我需要一個配置,使URL中的參數正確重定向。 一個例子:
nice2stay.com/houses/1
重定向到:
www.nice2stay.com/nl/holidayhouses/nameofthehouse
有想法嗎?
我只是在開發筆記本電腦上嘗試了下面的代碼。
Constraints(:host =>“ localhost”)執行root:to => redirect(“ http://www.localhost:3000”)匹配'/ * path',:to => redirect {| params | “ http://www.localhost/# {params [:path]}”}結尾
當請求的URL是根域時有效,但當請求的URL為localhost:/ houses時無效。路徑配置不正確嗎?
編輯 :對不起,我還沒有看到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.
前綴,並執行從非www到301網址的301重定向,這是Google的最佳解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.