Apache 将子目录重定向到子域问题
我有如下.htaccess文件:Apache 将子目录重定向到子域问题,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我有如下.htaccess文件: RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC] RewriteRule ^/?market/(.*)$ http://market.example.com/$1 [L,R=301] RewriteRule ^/?buddies/(.*)$ http://buddies.example.com/$1 [L,R=301] RewriteRule ^/?bazaar/(.*)$
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteRule ^/?market/(.*)$ http://market.example.com/$1 [L,R=301]
RewriteRule ^/?buddies/(.*)$ http://buddies.example.com/$1 [L,R=301]
RewriteRule ^/?bazaar/(.*)$ http://bazaar.example.com/$1 [L,R=301]
它在market子目录中运行良好。它重定向到子域。但是,其他两个子目录存在问题
其他2个子域的错误:
The page isn't redirecting properly
我应该怎么做才能克服这个问题呢?这是因为
RewriteCond
只适用于下一个RewriteRule
。最后2条规则对所有主机执行,包括buddies
和bazaar
,并导致重定向循环
您需要这些规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteRule ^/?market/(.*)$ http://market.example.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteRule ^/?buddies/(.*)$ http://buddies.example.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteRule ^/?bazaar/(.*)$ http://bazaar.example.com/$1 [L,R=301]