2

我正在开发一个backbone.js 应用程序(仅供参考),我可以提交请求以controller.php进行处理。我有一个 switch 语句,REQUEST_METHOD它可以按预期使用GET,POST和.PUTDELETE

但是,当我使用以下.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 错误 - 不允许的方法。

我一直在通过谷歌挖掘并询问同事,但找不到解决方案。

4

1 回答 1

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

于 2012-11-03T15:27:29.723 回答