【问题标题】:How would I redirect two domains using .htaccess如何使用 .htaccess 重定向两个域
【发布时间】:2010-03-27 07:51:49
【问题描述】:
我正在尝试将一个域重定向到根目录,将另一个域重定向到目录。我遇到的问题是第二个域覆盖了第一个重定向。
这就是我所拥有的。
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
【问题讨论】:
标签:
.htaccess
mod-rewrite
dns
【解决方案1】:
那是因为 'example2.com' 和 'www.example2.com' 不是 'example.site.net',就像您的 .htaccess 规则所述...
如果您希望这些规则适用于这些特定域,则需要删除“!”在他们面前。否则,您需要解释哪些特定域需要指向什么,而不仅仅是“一个域”和“另一个域”。
编辑:另外,您的 HTTP_HOST 条件不应包含“http://”。
【解决方案2】:
我认为您可能没有意识到您正在否定与“!”的比较
另外,您不必打开引擎两次。
试试这个:
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