如何让Apache的重写模式只匹配文件夹中的URL?

时间:2017-02-21 05:10:54

标签: apache .htaccess mod-rewrite

我希望有一个重写规则,它将请求从mywebsite/API/foobar.csv路由到mywebsite/API/data.php?code=foobar,其中foobar是用户输入的代码,并且将成为data.php的Get参数。

为此,我在.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 个答案:

答案 0 :(得分:1)

  

如何编写此规则,以便只有在此文件夹中为csv发出请求时

像这样调整你的正则表达式:

RewriteEngine On

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

现在它不匹配products/foobar.csv,因为在捕获的部分中不允许/