【发布时间】:2016-01-25 11:22:33
【问题描述】:
我想使用 Slim 框架创建一个 RESTful 服务,并且在我的本地主机 (xampp) 上一切正常。
我有几个路径,如'/'、'/articles'、'/articles/id/{id}' 等。
但是,当我将代码上传到服务器时,只有 '/' ( http://mydomain.de/api ) 会带来正确的答案,而其他路径只会带来 404 错误(服务器之一,而不是 Slim 抛出的那个)。我在/TEST/api 中的.htaccess 是:
RewriteEngine On
#RewriteBase /TEST/api
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
第二行未注释我得到相同的结果。有什么我想念的吗?如何确定我的 .htaccess-settings 是否被使用?
【问题讨论】:
-
我会首先检查 Apache conf 文件中的 AllowOverride All。错误让我想到了这一点。
-
另外我使用以下代码:RewriteRule ^.*$ index.php [NC,L]
-
我无法直接访问 conf 文件。只有一个网络后端,我可以更改一些设置。
-
这个问题令人困惑。你的 api 的 url 是什么? mydomain.de/api 还是 mydomain.de/TEST/api?无论如何,问题是您的重写规则不起作用。最有可能是关于 AllowOverride All 的 smozgurs 建议。
-
那么正确的base是:RewriteBase /api/
标签: php .htaccess http-status-code-404 slim restful-architecture