/ / RewriteEngineをサブディレクトリに含める必要があります。または、「要求が10回の内部リダイレクトの制限を超えました」 - apache、.htaccess、mod-rewrite

RewriteEngineをサブディレクトリに含める必要があります。または、「リクエストが10回の内部リダイレクトの制限を超えました」 - apache、.htaccess、mod-rewrite

私はルートディクトリにある.htaccessに以下のRewriteRuleを持っています。場所を変更するだけで、追加のパラメータが含まれます。

RewriteCond %{THE_REQUEST} /application/auth.php?(.*) [NC]
RewriteRule ^ /application/external/external.php?f=CheckThese[L,QSA]

内部サーバーエラーが発生したログで、「要求の可能性が高い構成エラーが原因で10の内部リダイレクトの制限を超えました」というメッセージが表示される

奇妙なことは、RewriteEngineをオフにした.htaccessファイルを/ application / externalディレクトリに置くとエラーが発生しなくなるということです。

私はルートの.htaccessの中に次のものを持っています:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{SCRIPT_FILENAME} !.*outputstuffwithouthttps.php$ [NC]
RewriteRule ^(.*)$ https://mywebsitedomain.net/$1 [R=301,L]

私には2つだけの書き換えルールがあります。同じことをしているルートのhtaccessファイル。彼らはすでにディレクトリにRewriteEngine Offを持つ.htaccessファイルを持っています。私はギャンブルをして、同じファイルを他のサブディレクターに入れて、これが問題を解決したことを発見しました。

私がポート80をhttpsに変更するルールを批評すると、何も変わらないので、これが原因だとは思わない。

何か案は?

回答:

回答№1は1

ルールを次のように変更します。

RewriteCond %{THE_REQUEST} /application/auth.php? [NC]
RewriteRule (?:^|/)application/auth.php$ /application/external/external.php?f=CheckThese [L,QSA,NC]

さもなければ、ルールは無限ループを引き起こします。 %{THE_REQUEST} 内部リライトのみを行うように変更することはありません。