2012-05-26 138 views
0

因此,我正在構建一個新網站,舊網站上的所有內容都將被廢棄 - 包括域名結構和域名。目前,我有我的.htaccess設置重定向規則http://jagdesignideas.com重定向到http://jag.is這樣:如何將域和任何子目錄重定向到新域?

RewriteCond %{HTTP_HOST} ^(www.)?jagdesignideas.com 
RewriteRule ^(/)?$ "http://jag.is" [R=301,L] 

但麻煩的是,如果用戶遵循從其他地方的intarwebz到http://jagdesignideas.com/about的鏈接,例如,不按照我的意願重定向到http://jag.is。相反,它會顯示jagdesignideas.com域的404頁面。

如何獲得jagdesignideas.com域的所有子字符串以最終重新導向?

編輯:爲了清楚起見,我並不試圖將舊網站上的網頁與新網站進行匹配,只做jagdesignideas.com的大量重定向以及任何僅指向jag.is域的內容。

回答

1

這就是我們你在你的RewriteRule中匹配:^(/)?$匹配根斜槓或什麼也沒有,這意味着你只是重寫調用到你的域根目錄。您需要捕獲所有路徑組件,使用^.*$,它匹配域根後面的任何內容,或者什麼都不匹配。這將任何呼叫重定向到您的舊域,有或沒有道路,您的新域的根:

RewriteCond %{HTTP_HOST} ^(www\.)?jagdesignideas\.com [NC] 
RewriteRule ^.*$ http://jag.is [R=301,L] 

如果你想你的通路結構重定向到新的服務器上的同一個,這將這樣的伎倆:

RewriteRule ^.*$ http://jag.is/$0 [R=301,L] 

從那裏開始,你可以基本上做到任何一種重定向的映射舊到新路徑結構 - 看到Apache Module mod_rewrite參考。

+0

謝謝,但那並不完全符合我的要求。這仍將舊網站上的任何頁面映射到新網站上的相同網址。由於我不會擁有相同的網站結構,因此我只希望舊網站上的所有網頁都映射到新網站的根目錄。 –

+0

@ JAG2007:只需刪除重定向模式中的'/ $ 1'部分即可。 – kopischke

+0

完美。謝謝你的幫助!!! –

相關問題