我正在尝试在具有以下行为的 .htaccess 文件中编写重写规则。我正在为一个位于真实位置的 API 做这件事,其形式为:
https://www.domain.com/apifolder/entry.php?call=testcall&data=testdata
API 调用从entry.php开始路由并最终传递适当的响应。基本上我的整个 API 都依赖于有效 API 调用的大型 switch 语句。问题是,那个 URL 不是很好。我正在尝试用这种形式的 URL 替换它:
https://www.domain.com/api/testcall?data=testdata
我已经接近以下重写规则:
RewriteRule ^api/([^/]+)/? /apifolder/entry.php?call=$1 [L]
但是,上面所需的示例不起作用,因为似乎进入的第一个参数(data,实际上是第二个参数)由? . 如果我尝试网址:
https://www.domain.com/api/testcall&data=testdata
它由&引导,然后它工作得非常好。可悲的是,这对我来说也很奇怪。我可以做些什么来让重写的 URL 接收以 a 开头的查询字符串?反而?