我正在构建一个 api,例如。https://example.com/my-api/api.php
然后我使用以下 .htaccess 文件使 api 可以通过https://example.com/my-api
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)$ api.php/$1/ [L,QSA]
该文件有效,但是当我的 api 调用没有以尾部斜杠结尾或设置了一些参数时,$_SERVER['REQUEST_METHOD'] 变为 GET。
例子:
POST https://example.com/my-api/foo #becomes GET
POST https://example.com/my-api/foo/ #stays POST
POST https://example.com/my-api/foo?bar=1 #stays POST
POST https://example.com/my-api/foo/bar #becomes GET
POST https://example.com/my-api/foo/bar/ #stays POST
POST https://example.com/my-api/foo/bar?abc=1 #stays POST
我怎样才能改变这种行为(这是可取的)还是我应该通知这个 api 的用户总是以尾部斜杠结束他们的调用?添加尾部斜杠后,api 将按预期工作。
我主要通过 PostMan 测试了这种行为。
慕慕森