1
私のhtaccessは現在、URLからphpファイル拡張子と後続のスラッシュを削除します。それは素晴らしいです。httpsを強制的に実行して.phpを削除するようにhtaccessを更新すると、リダイレクトループが発生します
しかし、私はちょうどSSL証明書を購入した後、these instructionsに続いて、新たに購入したSSL証明書を公開するようにURLを強制します(このウェブサイトは個人情報と金融情報を扱うので、大きなセールスポイントです)。
以下は私の.htaccessファイルで、# NEW CODE
ブロックにhttps://書き換えがあります。ただし、ウェブサイトを読み込もうとすると、ChromeでERR_TOO_MANY_REDIRECTS
という応答が返されます。
RewriteEngine On
# NEW CODE
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
# END NEW CODE
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ https://example.com/$1 [R,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ https://example.com/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^\.]+)$ $1.php [NC,L]
.htaccessファイルは私の得意ではないので、任意の助けいただければ幸いです!
# NEW CODE
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
# END NEW CODE
へ:
そしてすべてが、新しいコードなしなしリダイレクトループが正常に動作しませんか? –
このWebサーバーの前にロードバランサがありますか? –
@DusanBajic私はサーバー上のロードバランサを認識しておらず、すべてが元の(つまり、NEW CODEセクションとhttpsではなくhttp URLなしで)正常に動作していました – tristanojbacon