nginx 使用 put, delete请求方式时, 报HTTP 405 Method Not Allowed错误. 但是如果在URL中加上index.php, 就可以正常工作
大概情况是这样:
同样用PUT请求下面两个URL, 一个会报405错误, 一个正常返回
http://xxx.com/api/xyz nginx会报405错误 (405错误是nginx报的, 跟PHP框架没关系)
http://xxx.com/index.php/api/xyz 接口正常工作
这是什么原因, 怎么实现第一种URL也能正常工作?
之前在google搜这个问题, 有提到在编译时要加上 dav_module, 才能使用put, delete请求方式, 但是加上index.php后put,delete请求又能正常工作.
目前服务器上的nginx确实没有装这个模块, 是因为这个模块的原因吗
解决方法:
可以通过 rewrite 规则,把 http://xxx.com/api/xyz 的访问 内部 rewrite 成 http://xxx.com/index.php/api/xyz