2012-03-22 17 views
3

サーバの設定を変更せずにsymfony2アプリケーションに2つのURLでアクセスできるようにします。私はmod_rewriteのを使ってこれを実現しようとした、私の場合、私はhttp://example.com/http://example.com/test/mod_rewriteを使用してsymfony2を2つのURLで使用する方法

.htaccessファイルは、次のようになりますで私のアプリケーションにアクセスできるようにしたい:私は行番号2を追加

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

、 3行目と4行目はsymfony2のマニュアルです。返信はsymfonyの404です。今私の質問は:

1)mod_rewriteを使ってこれを行うことは可能ですか?
2)そうでない場合は、最適な解決策は何ですか?

+0

これはmod_rewriteを使用できないようです:http://miller.limethinking.co.uk/2011/04/08/symfony2-routing-and-mod_rewrite/ 簡単な方法はありますか? – liecno

+0

解決方法を見つけましたか?私はまったく同じ問題で苦労しています –

+0

申し訳ありませんが、残念ながら私はこれに適した解決策を見つけられませんでした。 – liecno

答えて

0

一つの選択肢「テスト」という名前のフォルダを作成し、それをあなたは最後の行を微調整する必要があるかもしれませんapp_dev.phpと.htaccess

のそれ自身のコピーを与えることのようです。デフォルトの.htaccessファイルは%{DOCUMENT_ROOT}を使用しませんが、セットアップで必要です。

RewriteEngine On 
RewriteOptions Inherit 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/test/app_dev.php [QSA,L] 

は、その後、必要書類に「../」余分を追加するためのテスト/ app_dev.phpを編集する必要があります。

私のプロジェクトのクイックテストでは、これが機能するようです。

アップデートは

私は、これは単純に書き換えルールでは可能であるとは考えていません。これは私のWeb/.htaccessファイルを修正する試みです。私の理解では、/ test/fooをリクエストすると、URLは内部的に/app_dev.php/fooに書き換えられます。しかし、Symfonyが経路を試みるURLが何とか見つかると、URLは/ test/fooであることがわかり、経路が見つからないという例外が出ます。

RewriteEngine On 
RewriteOptions Inherit 

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

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

私が使用して私のapp_dev.phpラインを変更、追加した場合、[QSA、L、R = 301]それは/app_dev.php/fooするブラウザをリダイレクトし、私に意図されたページを提供します。 app_dev.phpを隠すわけではないので、あなたが探しているものではないかもしれませんが、マッチが正しく機能していることを確認します。

関連する問題