我刚刚开始尝试silex。我跟随the documentation并且对于使用.htaccess路径的方式感到困惑。一些背景:
mod_rewrite
.htaccess文件:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /silex/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
如果我去 localhost / silex / web / hello / world ,我会得到一个有效的&#34; Hello world&#34;页面,这很棒。
...但如果我去 localhost / silex / hello / world ,我会收到silex错误:
找不到&#34; GET / silex / hello / world&#34;
的路线
这个错误对我有意义......但这是否意味着&#34; web /&#34;必须包含在所有网站的网址中?这对于silex应用程序来说是正常的吗?
有些问题浮现在脑海中:
silex/
或silex/web/
?在任何一个地方都有可能遇到任何问题吗?RewriteBase
应该转到/silex
还是/silex/web
? (文档模糊地说&#34; / path / to / app&#34 ;;对我来说这意味着/ silex)答案 0 :(得分:2)
在/silex/.htaccess
:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /silex/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ web/index.php [L]
</IfModule>
答案 1 :(得分:2)
Silex示例假定web
目录设置为虚拟主机的文档根目录。
每个应用程序应该有一个VHOST,例如文档根目录设为silex.local
的{{1}}。然后使用Silex网站上的c:\wamp\www\silex\web
示例并将其放入.htaccess
。