2016-08-05 6 views
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 

へ:

+0

そしてすべてが、新しいコードなしなしリダイレクトループが正常に動作しませんか? –

+2

このWebサーバーの前にロードバランサがありますか? –

+0

@DusanBajic私はサーバー上のロードバランサを認識しておらず、すべてが元の(つまり、NEW CODEセクションとhttpsではなくhttp URLなしで)正常に動作していました – tristanojbacon

答えて

0

変更してみてください

# NEW CODE 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule ^(.*)$ https://example.com/$1 [R,L] 
# END NEW CODE 
関連する問題