実稼働環境用に複数の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'を使用します。
いずれの考えも高く評価されます。
'HTTP_HOST'はホスト名と一致しません。 – anubhava
あなたは書き直したURLを書き換えています。最初に[mod書き換えルールが複数回適用される]ことを理解してください(https://httpd.apache.org/docs/2.4/rewrite/tech.html#InternalRuleset)。 – Walf