我正在我的mac上为本地API开发一个PHP RESTful服务器。
我已设法启用mod_rewrite并允许覆盖站点目录(〜/ Sites / api)。
在〜/ Sites / api中是.htaccess文件和index.php。我想将对http://localhost/~myusername/api/ *的所有请求重写为index.php。我需要保留查询参数,但就是这样。
我在.htaccess文件中尝试了以下内容:
Options +FollowSymLinks
RewriteEngine On
RewriteRule (.*) index.php [QSA,NC,L]
这给出了500:内部服务器错误。
注释掉FollowSymLinks
行会产生403:禁止错误。
我可以在没有重写的情况下访问index.php。
您可以提供的任何帮助将非常感谢。我觉得此刻正在哭泣。
谢谢, 罗斯
答案 0 :(得分:7)
RewriteRule ^api/(.*)$ index.php?handler=$1 [L,QSA]
处理程序是传递给index.php脚本的地方。例如,
的请求将被重写为
http://localhost/~myusername/api/index.php?handler=getUser/myusername
答案 1 :(得分:1)
问题在于[L]
表示停止重写此网址,但您正在生成一个index.php
的新网址,该网址也会被重写,从而导致无限循环
添加RewriteCond
,不包括index.php
被重写。