2009-10-06 68 views
0

我有以下网址:Apache的正则表达式不返回第一个结果

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

我想它返回2种选择,即“AA”的和的“搜索/ search.php中”。

随着正则表达式教练的帮助下,我已经做了以下正则表达式,针对这两个就好了:

/([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

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

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

(即没有第一个斜杠)

+0

我确实使用htaccess的文件...这解决了我的问题(除了增加^在前) – 2009-10-06 11:40:44

相关问题