我一直在研究这个问题已经有一段时间无济于事了......我已经在共享的web主机上安装了symfony,我无法将DocumentRoot更改为web /文件夹,因此不是我的选择......
我写过我的htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^$ web/app.php [QSA]
RewriteRule ^(.*)$ web/app.php/$1 [QSA, L]
我也尝试使用RewriteBase web/
和RewriteBase /web/
无效。
有了这个,symfony正在工作..我可以登录,我可以做所有这些...唯一的问题是,没有资产显示... Chrome开发者工具,告诉我它找到了404这是是的,因为它没有像DocumentRoot那样读取/ web /文件夹..
那么,如何在不重写文件的情况下解决这个问题,或者任何事情......只有.htaccess才能做到这一点......
答案 0 :(得分:14)
一种方法是在assets_base_urls
中设置app/config.yml
,例如
framework:
#..
templating:
engines: ['twig']
assets_base_urls: http://your.site.com/web/
答案 1 :(得分:4)
或者,您可以将.htaccess文件放在DocumentRoot文件夹中,并相应地将其中的所有内容重写到您的/ web文件夹中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /web/$1 [QSA,L]
</IfModule>
通过这种方式,您可以获得干净的URL(省略“web”或“app.php”),并且无需在配置中使用assets_base_urls内容。