2011-08-10 5 views
0

カスタムPHPアプリケーションを使用してすべてのサーバーリクエストを実行する一連のmod_rewriteディレクティブ(以下コード1)があります。1仮想ホスト上で ".com"を ".org"に置き換えるmod_rewrite条件とルールが必要

コード1

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA] 

私はmod_rewritesの最後のステップに入る前に、私はmydomain.orgするmydomain.comにすべての要求を変更する必要があります。下のコード2は私が思っていることを示していますが、うまくいきません。リクエストにより、500 Internal Serverエラーが発生します。

コード2

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mydomain\.com$ 
RewriteRule^http://mydomain.org%{REQUEST_URI} 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA] 

誰かが提案を提供することはできますか?ありがとう

答えて

1

あなたのサイトは2つのドメインでアクセス可能ですが、あなたのサイトへのすべてのリクエストをその1つにリダイレクトしたいと思っています。正しいコードは次のとおりです。

RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=permanent,L] 

リダイレクトラインの直後にコードを挿入する必要があります。

2番目の行は、ホストが指定されていない場合(リダイレクトループを防止するため)、リダイレクトがないことを確認します。

3行目の[R = permanent、L]は、永続的なリダイレクトを行い、それ以上のルール処理を防止します。他のルールは、リダイレクトが行われると処理されます。


完全なファイルは次のようになります。

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=permanent,L] 

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

おかげ@Chronial。あなたの前提は、あなたがそれを述べた方法に従って正しいです。したがって、このようにディレクティブの全体snipit見えるん: 'オプション+ FollowSymLinksを RewriteEngine上 するRewriteCondの%{HTTP_HOST}^MYDOMAIN \ .COM $ [NC] するRewriteCondの%{HTTP_HOST}^$ するRewriteRule ^(*!!。 )$ http://mydomain.org/$1 [R = permanent、L] RewriteBase/ RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^(。*)$ /app/core.php [L、NC、QSA] ' –

+0

@Chronial ...私は読めるコードを明らかにするために私のコメントをフォーマットすることはできないので、私の改訂されたディレクティブの次の答えを見て、それが私が使うはずの解決策かどうか教えてください。 –

+0

RewriteBaseコマンドの後に**私のコードを置かなければならないと言ったので。フルコードを含めるように私の答えを更新しました。 – Chronial

0
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^(.*)$ http://mydomain.org/$1 [R=permanent,L] 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /app/core.php [L,NC,QSA] 
+0

それは動作しませんでした。 –

関連する問題