Apache PHP RESTful服务器的mod_重写

Apache PHP RESTful服务器的mod_重写,apache,rest,mod-rewrite,url-rewriting,Apache,Rest,Mod Rewrite,Url Rewriting,我正在为mac上本地的API开发一个PHP RESTful服务器 我已成功启用mod_rewrite,并允许站点目录(~/Sites/api)进行覆盖 在~/Sites/api中是.htaccess文件和index.php。我想将所有请求重写为*to index.php。我需要保留查询参数,但仅此而已 我在.htaccess文件中尝试了以下操作: Options +FollowSymLinks RewriteEngine On RewriteRule (.*) index.php [QSA,NC

我正在为mac上本地的API开发一个PHP RESTful服务器

我已成功启用mod_rewrite,并允许站点目录(~/Sites/api)进行覆盖

在~/Sites/api中是.htaccess文件和index.php。我想将所有请求重写为*to index.php。我需要保留查询参数,但仅此而已

我在.htaccess文件中尝试了以下操作:

Options +FollowSymLinks
RewriteEngine On
RewriteRule (.*) index.php [QSA,NC,L]
这将导致500:内部服务器错误

注释掉
FollowSymLinks
行会出现403:禁止的错误

我可以很好地访问index.php,而无需进行重写

如果您能提供任何帮助,我们将不胜感激。我此刻想哭

谢谢, 罗斯

其中,处理程序是传递给index.php脚本的内容。例如,请求

将被改写为


问题是
[L]
意味着停止重写此URL,但您正在使用
index.php
生成一个新URL,该URL也将被重写,从而导致无限循环


添加将
index.php
从重写中排除的
RewriteCond

您应该排除
index.php
@Gumbo:如果您不介意,请在您的声明中提供解释。:@kaziTanvirAhsan该评论已经存在三年多了。我不知道它应该是什么意思。@kaziTanvirAhsan好的,现在我知道它应该是什么意思了:
^api/(.*)$
也将匹配
api/index.php
。因此,应排除
index.php
,以符合此规则,例如。g、 ,再加上一个
RewriteCond$1=php
RewriteRule ^api/(.*)$ index.php?handler=$1 [L,QSA]