2017-02-21 15 views
1

我想要一個重寫規則,它會將請求從mywebsite/API/foobar.csv路由到mywebsite/API/data.php?code=foobar,其中foobar是用戶輸入的代碼,並且將會爲data.php提供一個Get參數。如何讓Apache的重寫模式只匹配文件夾中的url?

對於這一點,我使用的.htaccess下面的代碼在API文件夾:

RewriteEngine On 
RewriteRule ([^.]+)\.csv data.php?code=$1 [L,NC,QSA] 

這工作正常,但它也路由其他網址,如:

mywebsite/API/products/foobar.csv 
mywebsite/API/getProducts.php?code=foobar.csv 

我該如何編寫此規則,以便只有在此文件夾中的csv請求時纔會路由?

回答

1

我怎樣寫這個規則,所以只有當一個請求該文件夾

在一個CSV作出調整你的正則表達式是這樣的:

RewriteEngine On 

RewriteRule ^([\w-]+)\.csv$ data.php?code=$1 [L,NC,QSA] 

現在,它贏得了」 t匹配products/foobar.csv,因爲/不允許在捕獲的部分。

+1

我曾嘗試使用'^',但它仍然選擇不必要的網址,因爲我沒有在你的正則表達式中尋找單詞。謝謝你的幫助。 –