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

2018年4月22日htaccess, レンタルサーバーさくらインターネット

さくらのレンタルサーバーで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

リダイレクト回数の上限に達した場合のエラーになりますが、調べてみたらアクセス元のサーバーの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>