2012-02-26 4 views
-1

パフォーマンスのために.htaccessコンテンツをvhostに移動して問題を解決しようとしました。私はバーチャルホストでこれを試みたsymfony2のhtaccessファイルをvhostに移動する

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

これは.htaccessのである

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

問題は、第二つapp.phpする/app_dev.php/コントローラをリダイレクトし、それがshoudことです最初の例のように、そうではありません。

どのようなヒントも大歓迎です。

+0

あなたのVhostで "RewriteEngine on"で書き直しを有効にしましたか? –

+0

@MartinRothenbergerはい私はしました。それ以外の場合は、まったく動作しません。 – DavidW

答えて

0

RewriteCond Directive Apache Docsから:

REQUEST_FILENAME:要求に一致するファイルまたはスクリプトに

フルローカルファイルシステムのパス、これはすでにREQUEST_FILENAMEがある時に、サーバーによって決定された場合参照してください。それ以外の場合は、仮想ホストのコンテキストでを使用すると、REQUEST_URIと同じ値となります。

それでは、あなたが実際にのためにテストすることはファイルではありません前に追加DocumentRootパスなしの絶対パスすなわちないパス/app_dev.phpを持っています。だから、あなたはこれをしなければならない:あなただけのURIを考慮せずに書き換えされている。このようの必要がない

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f 
RewriteRule^/app.php [L] 
  • ^(.*)$
  • クエリ文字列を操作していないため、フラグQSAも必要ありません。
+0

私が作業しているスクリプトでは、ファイルではないことを要求した場合、app.phpを経由する必要があります。そのようなファイルが存在する場合、app_dev.phpを使用します。私はどうしているのか分かりませんが、上記の.htaccessファイルでは、domain.com/test/somethingはapp.phpをリクエストし、/ test/somethingをQuery文字列として受け取ります。 /app_dev.php/test/somethingはapp_dev.phpをリクエストし、/ test/somethingをクエリ文字列として送信します。何らかの理由で。私はそれがちょうどその.htaccessファイルでそれをする方法を知らない。 – DavidW

+0

私は(2番目のコードブロック)を試して何を書いたのか何らかの理由で私のために同じことを行い、/app_dev.php/は/にリダイレクトされています。これはオリジナルの.htaccessを使って私の問題です。 – DavidW

+0

@Leoあなたのhtaccessには他にどんなルールがありますか? – ThinkingMonkey

関連する問題