Apache Regex不会返回第一个结果

时间:2009-10-06 11:30:26

标签: regex .htaccess mod-rewrite

我有以下网址:

http://somedomain.com/aa/search/search.php

我希望它返回2个选项,“aa”和“search / search.php”。

在Regex Coach的帮助下,我制作了以下正则表达式,这两个目标很好:

/([a-z]{2})/(.*)

然而,当我在我的htaccess文件中使用它们时,重写就不会发生:

Options +FollowSymlinks
RewriteEngine on

RewriteRule /([a-z]{2})/(.*) /$2?var=$1

有人能指出这个正则表达式新手朝着正确的方向吗?

编辑:

通过“不会发生”,我的意思是跟随网址:somedomain.com/aa/search.php给了我
“找不到/aa/search.php” 而不是 “找不到/search.php?var=aa”。

1 个答案:

答案 0 :(得分:1)

这取决于您定义规则的位置。您的语法对于服务器(全局)配置文件是正确的。如果您使用.htaccess文件,服务器将从URL中删除文件所在位置的路径。尝试

([a-z]{2})/(.*)

(即没有第一个斜线)