4

私はかなり長い間これに取り組んできましたが、役に立ちませんでした.. DocumentRoot を web/ フォルダーに変更するためのアクセス権がない共有 web ホストに symfony をインストールしたので、それは私にはオプションではありません...

私は自分の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_urls1つの方法は、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」を省略) が得られ、config で assets_base_urls を使用する必要がなくなります。

于 2012-09-17T19:45:29.753 に答える