我正在开发一个backbone.js应用程序(仅供参考),我可以向controller.php
提交请求以进行处理。我在REQUEST_METHOD
上有一个switch语句,它与GET
,POST
,PUT
和DELETE
一样正常工作。
但是,当我使用以下.htaccess
文件时:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?controller/([^/]+)$ /controller.php?id=$1 [L]
...并传递给controller/5
而不是controller.php?id=5
我收到405错误 - 不允许使用该方法。
我一直在挖掘谷歌并询问同事,但找不到解决方案。
答案 0 :(得分:1)
.htaccess的最后一行看起来不对。
如果您只有方法0到9,那么它将是:
RewriteRule ^/controller/([0-9])$ /controller.php?id=$1 [NC,QSA,L]
或一般情况下:
RewriteRule ^/controller/(.*)$ /controller.php?id=$1 [NC,QSA,L]
在这种情况下,控制器/之后的所有内容都将作为id参数的值($ 1)传递。
如果它在您致电controller.php?id=5
时有效,则在调用controller/5