【さくらのレンタルサーバー】htaccessでのリダイレクトループ回避

2019年6月12日さくらインターネット,htaccess,SSL,レンタルサーバー

さくらのレンタルサーバーでHTTPSリダイレクトを.htaccessでさくら公式に従って記載しておりましたが、RSSが正常に取得できるか試してたら同一サーバーからのfile_get_contents(php)でエラーが発生しました

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

エラーログ

failed to open stream: Redirection limit reached, aborting in xxx

リダイレクトループ回避策

リダイレクト回数の上限に達した場合のエラーになりますが、googleで解決策を検索みたらアクセス元のサーバーのIPアドレスでチェックして利用しているサーバーならリダイテクトルールから除外すれば良いとの記事を発見しました

https://masshiro.blog/sakura-ssl-redirect/

とりあえずそのまま.htaccessに加えてみたら無事file_get_contents(php)でリダイレクトループエラーとならずに取得できました

良い情報、ありがたいですね

.htaccess記述は以下の形式で問題なく正常なリダイレクトが可能でした

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteCond %{REMOTE_ADDR} !=xxx.xx.xxx.xxx
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>