14

このURLhttp ://www.sample.com/amateur1から本番環境( http://www.sample.com/amateur1/web/app.php )のsymfonyアプリにアクセスしたい。

そのために、.htaccesファイルを次の内容でhttp://www.sample.com/amateur1/.htaccessに移動しました。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /web/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

しかし、http://www.sample.com/amateur1にアクセスすると、404エラーが表示され、prod.logが書き込まれません。

また、 RewriteBaseパスがサーバーのDocumentRootに対して相対的であるか、または.htaccessファイルが配置されているパスから相対的であるRewriteBase /amateur1/web/かがわからないために使用しました。また、この回答のためにRewriteBaseとして試してみましたSymfony2:サブディレクトリにデプロイする方法(Apache)/amateur1/amateur1/

3回試行すると、[例外]ページがスタイルなしで表示され、画像が読み込まれません。しかし、その後、prod.logファイルで次のエラーが発生します。

[2013-02-15 02:06:47] request.ERROR: Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []

私が間違っているのは何ですか?

4

2 に答える 2

24

構成では、apacheはpublic_htmlドキュメントルートとして使用します

Symfony2がディレクトリにインストールされている場合/home/u105859802/public_html/amateur1、提供するSymfonyパブリックディレクトリは/home/u105859802/public_html/amateur1/web/

あなたは使用する必要があります

RewriteBase /amateur1/web/

しかし、注意してください、それは安全ではありません
あなたはあなたのsymfonyディレクトリを保護しなければなりません!(構成にアクセス可能)

symfonyファイルをプライベートエリアに移動してみませんか?
SymfonyWebディレクトリの名前を次のように変更できますpublic_html

ドキュメントクックブックでそれを行う方法を参照してください

したがって、私の推奨構造は次のようになります。

  • / home / u105859802 /
    • ベンダー
    • src
    • アプリ
    • 置き場
    • public_html(デフォルトではsymfony2のweb) <-唯一のパブリックディレクトリ
于 2013-02-15T10:56:39.500 に答える