【发布时间】:2015-05-05 00:54:50
【问题描述】:
我是第一次尝试 Silex,但我无法通过友好的 URL 进行简单的调用以正常工作,但如果我使用非友好的 URL,它就可以了。我在 localhost 中试验,域是
本地主机/站点
结构如下:
site
|- ...
|- .htaccess
|- /php/
|- rest.php
.htaccess 代码:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^rest/(.*)$ php/rest.php/$1 [QSA,L]
</IfModule>
如果我尝试打电话
localhost/site/php/rest.php/anything
它工作正常并返回预期值,但如果我尝试这个
本地主机/站点/休息/任何东西
只是一直在说
找不到“GET /site/rest/anything”的路线
当它工作的路线必须是/anything
我试过了:
- 将 .htaccess 移至
/php/。 - 将 RewriteRule 更改为
RewriteRule ^ rest.php [QSA,L]。 - 将 RewriteBase 更改为
RewriteBase /site/php/和/site/。
谢谢。
【问题讨论】:
-
我认为 RewriteBase 应该是
/site/... -
@MikeRockett True,现在正在编辑,谢谢:)
-
当
.htaccess文件位于site目录中时,我特别指出您的RewriteBase应该是/site/(而不是/site/php/)。 -
@MikeRockett 我也试过了,没有结果。
标签: php .htaccess rest mod-rewrite silex