2009-10-06 96 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

相關問題