使用mod_rewrite比较url的两个部分

时间:2013-10-21 11:12:00

标签: mod-rewrite apache2

我想重写网址,如果它是:subdomain.xxx.com/zzz/NOT_subdomain/fff

所以我有类似的东西:

RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^([a-z0-9-]+).xxx.com/([a-z0-9-]+)/([a-z0-9-]+)/([a-z0-9-]+)
RewriteCond %1 =!%3 
RewriteRule (.*) http://www.xxx.com/404.html

但是当子域和NOT_subdomain相等时它会重写,我没试过它!但是没有用......有什么帮助吗? 谢谢

1 个答案:

答案 0 :(得分:0)

尝试将您的条件更改为:

RewriteCond %1//%3 !^(.*)//\1$

您不能在条件的右侧有反向引用,因此您可以将两者放在左侧并使用\1来引用分组。因此(.*)%1中的内容进行分组,然后\1尝试将%3中的内容与分组进行匹配。如果失败,则两者不相等且条件为真。

所以你有:

RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^([a-z0-9-]+).xxx.com/([a-z0-9-]+)/([a-z0-9-]+)/([a-z0-9-]+)
RewriteCond %1//%3 !^(.*)//\1$
RewriteRule (.*) http://www.xxx.com/404.html
相关问题