我想摆脱 symfony2 安装 URL 中的“web/app.php”+“web/app_dev.php”。我知道,虚拟主机是最好的方式,但你并不总是拥有自己的主机。所以我在我的项目文件夹(http://localhost/my-sf2-project/.htaccess)的 htaccess 中使用 mod_rewrite 进行了尝试......如何做到这一点,这里有很多解释。幸运的是,重写过程正在用这个 htaccess 做一些事情:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /my-sf2-project/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/app_dev.php [QSA,L]
</IfModule>
这意味着,当我尝试请求http://localhost/my-sf2-project/page/1
时,服务器应该重定向到http://localhost/my-sf2-project/web/app_dev.php/page/1
. 我的重写日志正在确认它:
使用 /my-sf2-project/web/app_dev.php/page/1 [内部重定向] 进行内部重定向
但是现在奇怪的事情确实发生了...... symfony2 开发环境说:
找不到“GET /my-sf2-project/page/1”的路线!
这意味着请求以某种方式重定向到
- http://localhost/my-sf2-project/web/app_dev.php/my-sf2-project/page/1
代替
- http://localhost/my-sf2-project/web/app_dev.php/page/1
这是怎么发生的?apache 配置中是否有一些设置或我的 mod 重写中有错误,这可以解释这种奇怪的行为?