4

我已经为此工作了很长一段时间,但无济于事。我在共享的 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,因为它是没有将 /web/ 文件夹读取为 DocumentRoot..

那么,如何在不重写文件或其他任何内容的情况下解决此问题.. 必须有一种方法可以仅使用 .htaccess 来解决此问题...

4

2 回答 2

14

一种方法是assets_base_urls设置app/config.yml例如

framework:
    #..
    templating:      
        engines: ['twig']
        assets_base_urls: http://your.site.com/web/
于 2012-04-20T21:21:14.523 回答
4

或者,您可以在 DocumentRoot 文件夹中放置一个 .htaccess 文件,并将其中的所有内容相应地重写到您的 /web 文件夹中:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /web/$1 [QSA,L]
</IfModule>

这样您就可以获得干净的 URL(省略“web”或“app.php”),并且无需在配置中使用 assets_base_urls 内容。

于 2012-09-17T19:45:29.753 回答