2010-11-15 102 views
1

我想訪問例如www.thisdomain.com/docs/path1/path2重定向到www.thatdomain.com/path1/path2.htaccess 301重定向路徑和所有子路徑

(請注意,文檔不是新路徑的一部分)

在WWW上我有以下.thisdomain.com:

RewriteEngine on 

RewriteRule ^docs/* http://www.domain.com/ [R=301,L]  

如果我訪問www.thisdomain.com/docs,它引導到www.thatdomain.com,但如果我訪問像個孩子路徑www.thisdomain.com/docs/path1/path2失敗。是否有可能根據需要攔截子路徑訪問和重定向?如果是這樣,任何指針?

謝謝。

回答

5

使用正則表達式,*表示以前的原子的任何數字,它們將匹配/ docs和/ docs /。試試這個:

RewriteEngine on 
RewriteRule ^docs$ http://www.domain.com/ [R=301,L,QSA] 
RewriteRule ^docs/(.*) http://www.domain.com/$1 [R=301,L,QSA] 

QSA是查詢字符串追加,所以/docs/foo?bar=baz不會丟失?bar=baz。)「使用htaccess的重定向重定向舊域名新域名」 the first Google result其中我發現

2

據部分搜索「htaccess的重定向」(不包括雙引號),這段代碼就足夠了:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

根據他們的技術說明,它會重定向的目錄名.hta ccess文件以遞歸方式放置(包括任何子路徑),就像您打算的一樣。當然,mod_rewrite需要存在才能使重寫指令正常工作。