我需要多个RewriteCond用于相同的域,但不同的REQUEST_URI 我需要根据REQUEST_URI重定向到不同的域。
我正在尝试这个没有运气:
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/myuir/ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ / [R=301,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/myuniqueuri/ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ http://example2.com/$! [R=301,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/myotheruniqueuri/ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ http://example3.com/$! [R=301,L]
我认为请求uri条件的[OR]会起作用,但事实并非如此。我也试过没有[OR]而且它没有用!
例如:
如果网址是:
http://example.com/myuniqueuri
需要重定向到:
http://example2.com
如果网址是:
http://example.com/myotheruniqueuri
需要重定向到:
http://example3.com
其中example2和example3可以是任何但不相同的。
非常感谢任何帮助
由于
答案 0 :(得分:0)
我认为问题可能在于你的语法。参考是$ 1而不是$!。此外,!
使用不正确。这基本上意味着not
。喜欢,如果不是这个目录然后等。好吧,它似乎你想匹配目录,然后根据它重定向。试试这段代码,看看它是否适合你。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/myuir
RewriteRule ^(.*)$ / [R=301,L]
RewriteCond %{REQUEST_URI} ^/myuniqueuri
RewriteRule ^(.*)$ http://example2.com/ [R=301,L]
RewriteCond %{REQUEST_URI} ^/myotheruniqueuri
RewriteRule ^(.*)$ http://example3.com/ [R=301,L]