如何使用.htaccess重定向两个域

时间:2010-03-26 23:45:01

标签: .htaccess mod-rewrite dns

我正在尝试将一个域重定向到根目录,将另一个域重定向到目录。我遇到的问题是第二个域正在覆盖第一次重定向。

这就是我所拥有的。

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^http://example.site.net$ [NC]
RewriteCond %{REQUEST_URI} !^/.*$
RewriteRule ^(.*)$  / [L]

RewriteEngine On
RewriteCond %{HTTP_HOST} !^http://example2.com [NC]
RewriteCond %{HTTP_HOST} !^http://www.example2.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{REQUEST_URI} !^/example2_directory/
RewriteRule ^(.*)$ /example2_directory/$1   

2 个答案:

答案 0 :(得分:1)

那是因为'example2.com'和'www.example2.com'不是'example.site.net',就像你的.htaccess规则说明......

如果您希望这些规则适用于这些特定域,则需要删除“!”在他们面前。否则,您需要解释哪些特定域需要指向什么,而不仅仅是“一个域”和“另一个域”。

修改:此外,您不应该为HTTP_HOST条件添加“http://”。

答案 1 :(得分:1)

我想你可能没有意识到你在否定与“!”的对比。

另外,你不必两次打开引擎。

试试这个:

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^http://example.site.net$ [NC]
RewriteCond %{REQUEST_URI} !^/.*$
RewriteRule ^(.*)$  / [L]

RewriteCond %{HTTP_HOST} ^http://example2.com [NC]
RewriteCond %{HTTP_HOST} ^http://www.example2.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{REQUEST_URI} !^/example2_directory/
RewriteRule ^(.*)$ /example2_directory/$1