.htaccess重写规则匹配问题

时间:2014-04-10 12:09:42

标签: regex apache .htaccess mod-rewrite

所以我的任务是让这个URL工作

foobar.com/city.homes

和... ..

foobar.com/page-2/city.homes

使用此重写

RewriteRule ^(.*).homes$      search-results.asp?area=$1&proptype=home

所以我的第一次尝试看来,逻辑上我认为

RewriteRule ^page-(.*)/(.*).homes$     search-results.asp?area=$2&proptype=home&page=$1
然而,无论我把它放在.htaccess中,它都没有像我期待的那样工作。它永远不会匹配第二条规则,除非我删除第一条规则。

1 个答案:

答案 0 :(得分:1)

您的正则表达式错误且重叠。

你的规则如下:

RewriteRule ^page-([0-9])/([^.]+)\.homes$ search-results.asp?area=$2&proptype=home&page=$1 [L,QSA]

RewriteRule ^([^.]+)\.homes$ search-results.asp?area=$2&proptype=home [L,QSA]