私はルートディクトリにある.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}
内部リライトのみを行うように変更することはありません。