我已经建立了一个休息api,结束点是
/var/www/site/restapi/v1
现在在虚拟主机配置中,我设置了类似
的内容Alias /api/v1 /var/www/site/restapi/v1
所以,如果我使用网址
http://site.com/api/v1它回退到/restapi/v1
但是API调用可以是as
http://site.com/api/v1/Auth/login并处理我将.htacess
置于/restapi/v1
内作为
RewriteEngine On
RewriteRule ^(.*)/(.*) index.php?resource=$1&method=$2
它不起作用。我做了一些研究,发现在虚拟主机配置中我改变了
Options Indexes FollowSymLinks MultiViews
到
Options Indexes FollowSymLinks
然后它可以工作,但问题是当我使用GET获取资源然后它变成
"Auth/login"
如何添加clean api url而无需删除MultiView并使用
重写index.php?resource=$1&method=$2
答案 0 :(得分:1)
如果我理解正确并且问题是$resource
也包含方法,那么尝试更改第一个捕获组
RewriteRule ^([^/]+)/(.*) index.php?resource=$1&method=$2 [QSA]
或改为使用延迟匹配(.*?
)。
我不知道为什么MultiView会发生冲突;可能你有一些名字冲突的其他文件。可能在提高详细程度后检查日志文件。