2016-11-12 12 views
0

実稼働環境用に複数のRewriteBaseディレクトリを設定しようとすると、問題が発生しています。次のようにこれが広く(すなわち "/")ベースディレクトリがルート以外のときに動作するようですmod_rewriteを使用してRewriteBaseをベースディレクトリのRewriteCondに置き換えてください

Many RewriteBase in one .htaccess file?

With mod_rewrite can I specify a RewriteBase within a RewriteCond?

RewriteCond %{HTTP_HOST} ^localhost/tla-test/(.)$ [OR] 
RewriteCond %{HTTP_HOST} ^192.168.0.200/tla-test/(.)$ 
RewriteRule ^(.*)$ tla-test/index.php&page=$1 [L] 

RewriteCond %{HTTP_HOST} ^test.townshendla.com/(.)$ 
RewriteRule ^(.*)$ /index.php&page=$1 [L] 

#Send any reqests to the index.php file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*      index.php 
私はで提供されている指針に従っています

最初の書き換え条件は完全に機能します。 2回目の書き換え条件は、1回目と1回目のように、Apacheエラーログを取得できませんが、テスト環境で試して複製すると、次のエラーが発生します(これは無関係かもしれません)。

AH00124: 設定エラーのため、要求が内部リダイレクトの制限を超えました。必要であれば、「LimitInternalRecursion」を使用して の制限を増やしてください。バックトレースを取得するには、 'LogLevel debug'を使用します。

いずれの考えも高く評価されます。

+1

'HTTP_HOST'はホスト名と一致しません。 – anubhava

+0

あなたは書き直したURLを書き換えています。最初に[mod書き換えルールが複数回適用される]ことを理解してください(https://httpd.apache.org/docs/2.4/rewrite/tech.html#InternalRuleset)。 – Walf

答えて

0

ご協力ありがとうございます。まずanubhavaあなたがHTTP_HOSTについて正しかった、第二に、あなたのポインタをWalf非常に貴重だった、それは同様の問題を抱えていた誰かの詳細な説明とこのページに私を導いた:問題だったよう

Mod_Rewrite unexpected behavior L flag

を全体的に見えますファイル/ディレクトリのチェックがループに行っていたことを、この問題を解決すると思われるコードは次のとおりです。

RewriteCond %{HTTP_HOST} ^(localhost|192.168.0.200)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /tla-test/index.php?page=$1 

RewriteCond %{HTTP_HOST} !^(localhost|192.168.0.200)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?page=$1 

おかげ

ヒュー

関連する問題