Mod rewrite 如何使.htaccess接受某些文件扩展名

Mod rewrite 如何使.htaccess接受某些文件扩展名,mod-rewrite,Mod Rewrite,我目前正在构建一个API,我希望人们能够进行如下调用: 将加载到以下位置: 我正在摆弄一些Mod重写代码,但无法让它工作。我知道如何将查询字符串(apikey=1234&field1=1&field2=2)添加到URL的末尾 这是我到目前为止得到的,但它不起作用。它给了我一个404: RewriteRule ^([a-zA-Z\.]+).(json|jsonp|xml|php)+)$ index.php?method=$1&format=$2 [L] 我正在努力实现的目标可能吗?提

我目前正在构建一个API,我希望人们能够进行如下调用:

将加载到以下位置:

我正在摆弄一些Mod重写代码,但无法让它工作。我知道如何将查询字符串(apikey=1234&field1=1&field2=2)添加到URL的末尾

这是我到目前为止得到的,但它不起作用。它给了我一个404:

RewriteRule ^([a-zA-Z\.]+).(json|jsonp|xml|php)+)$ index.php?method=$1&format=$2 [L]

我正在努力实现的目标可能吗?提前谢谢

解决了!下例中的圆点:

RewriteCond %{REQUEST_URI} !\.(jpg|png|css|js|php)$
([a-zA-Z\.]+)
导致
index.php
作为
$1
变量返回。为了克服这个问题,我简单地补充说:

RewriteCond $1 !^index\.php$
排除
index.php
。并将
[L]
替换为
[QSA,L]
将查询字符串添加到末尾

所以我最后的代码是:

RewriteCond $1 !^index\.php$
RewriteRule ^([a-zA-Z\.]+)\.(json|jsonp|xml|php)$ index.php?method=$1&output=$2 [QSA,L]
看看给出的答案——或者更好的是原始文档。它向您展示了如何打开调试日志-这将确切地告诉您如何处理请求。一旦你知道你的表达是如何被解释的,写正确的表达就轻而易举了。