2013-04-14 11 views
3

我有幾個域指向同一個webspace(www.domain1.com,www.domain2.com,www.domain3.com等)。僅當使用一個域時,例如www.domain1.com,我想重定向來自不同短鏈接的用戶,例如www.domain1.com/link或www.domain1.com/link2轉到另一個URL。htaccess僅針對一個域的重定向

我把以下內容放在一起。該的RewriteCond可能是好的,但的RewriteRules不起作用:

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteRule ^/test$ http://www.domain1.com/xyz.php [R=301] 
RewriteRule ^/test2$ http://www.domain1.com/abc.php [R=301] 
RewriteRule ^/test3$ http://www.domain1.com/abc/test10.php [L,R=301] 

你有任何提示正確的RewriteRules應該看怎麼樣?

回答

2

希望這有助於你在正確的方向前進......

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteCond %{REQUEST_URI} ^(/test/)$ [NC] 
RewriteRule ^(.*)$ http://www.domain1.com/xyz.php [R=301] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteCond %{REQUEST_URI} ^(/test2/)$ [NC] 
RewriteRule ^(.*)$ http://www.domain1.com/abc.php [R=301] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteCond %{REQUEST_URI} ^(/test3/)$ [NC] 
RewriteRule ^(.*)$ http://www.domain1.com/abc/test10.php [L,R=301] 
+0

謝謝!這看起來很複雜...所以我需要爲每個重定向網址添加三行。我在我的htaccess文件中有30多個重定向網址。是否有可能只寫一個RewriteCond,在它的下面每行重定向一行,RewriteCond適用於所有重定向,如:第一行:RewriteRule ...,第二行:重定向...,第三行:重定向...等。? – flip

+0

實際上,如果.htaccess文件只適用於一個域(例如'domain1.com'),那麼你應該能夠消除那些說'RewriteCond%{HTTP_HOST} ^(www \。)?line1 \ .com [NC ]'...除此之外,雖然我不確定還有很多其他的你可以使用.htaccess。然而,使用PHP,你可以假設在你列出的每個dir中放置一個名爲'index.php'的文件,並且在每個索引文件中放入類似於: '<?php header('Location:http:// www .domain1.com/xyz.php');' – jerdiggity