質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

解決済

さくらインターネットでのリダイレクトループを解決したい。

khir
khir

総合スコア13

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

2回答

0リアクション

0クリップ

11525閲覧

投稿2019/04/03 14:23

編集2019/04/07 13:01

前提・実現したいこと

さくらインターネットのレンタルサーバーで管理しているシリウスで作ったサイトが、2019年3月31日夕方以降(日本時間)突然閲覧できなくなりました。その日の昼ごろまでは全く問題なく閲覧できており、夕方にアナリティクスを見たところ、訪問者数が0になっていたことで気づきました。

PCやiPhoneからIEやChromeで試しても閲覧できず「このページは動作していません リダイレクトが繰り返し行われました。」と表示されます。そこで、対策が載っているウェブサイトを参考にcookieを消去してみても改善されません。

なお、さくらインターネットで2018年10月頃にこちらのサイトを参考に無料SSL化を実施しており、その時から2019年3月31日昼頃までは問題なくhttpからhttpsへ正常にリダイレクトされており、サイトも閲覧できておりました。また、少なくとも今年に入ってからは全く触っておらず、何か特別な設定や変更をしたこともないので、リダイレクトループがなぜ起きたか原因が分かりません。

過去にシリウスやさくらインターネット内の.htaccessは触ったことがなく、何も記述したことはございません。
ちなみに元からあった.htaccessの記述はこちらになります。

さくらインターネットのファイルマネージャー内の.htaccessの記述

<ifModule mod_headers.c> Header set Vary User-Agent </ifModule> RewriteEngine Off RewriteEngine On RewriteBase / SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 <IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} ^(www.サイトのURL.com)$ [NC] RewriteRule (.*) https://サイトのURL.com%{REQUEST_URI} [R=301,L] RewriteCond %{ENV:HTTPS} !on RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry) RewriteRule ^$ iphone/redirect.php?f=index.html [L] RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry) RewriteRule ^(.*).html iphone/redirect.php?f=$1.html [L] RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry) RewriteRule ^(.*).css iphone/$1.css [L] RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry) RewriteRule ^img/(.*) iphone/img/$1 [L] RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry) RewriteRule ^(.*)/ iphone/redirect.php?f=$1/index.html [L] RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry) RewriteRule ^(.*) iphone/$1 [L] RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ m/redirect.php?f=index.html [L] RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^(.*).html m/redirect.php?f=$1.html [L] RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^img/(.*) m/img/$1 [L] RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^(.*)/ m/redirect.php?f=$1/index.html [L]

また、ローカル環境では閲覧可能です。(シリウス内のプレビューだとサイトが確認できます)

どうにかこの状況を脱して、今まで通り問題なくウェブサイトを閲覧できるようにしたいと思っておりますので、ご教示いただけますと幸いです。何卒宜しくお願い申し上げます。

発生している問題・エラーメッセージ

トップページをChromeのRedirect Pathで調べてみると、https://〇〇→https://〇〇→・・・と、httpsで始まる同じURLから同じURLにリダイレクトされており、リダイレクトループが発生していると考えております。
トップページ以外の主要なページ(おそらく全ページ)も同様の結果でした。

ERR_TOO_MANY_REDIRECTS

試したこと

・cookieの削除→×
・さくらインターネットに上記内容をメールで問い合わせ→「ページの自動転送設定が正しくないため、.htaccessの記述を見直ししていただければと存じます。」とだけ返答され×
・シリウス側の設定(サイトURLがhttpsになっているか)を確認→×問題なし、そもそも触っていない。
・シリウスのバックアップデータをアップロードしてみる→×
・カノニカルタグ内のURLもhttpsになっていることを確認。
・シリウス側の.htacceesにこちらのサイトやこちらのサイトに載っていた以下のコードを記載→×

RewriteEngine On RewriteCond %{REQUEST_URI} !^/robots.txt$ RewriteCond %{REQUEST_FILENAME} !404error.html$ RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{ENV:HTTPS} !^on$ RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:HTTPS} !on RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>

・さくらインターネットのファイルマネージャー内の.htacceesにも上記コードを記載→×

追記:2019年4月7日現在の状況

アドバイスいただいた内容を参考にして、下記サイトを見て試行錯誤してみましたが、未だにリダイレクトループから抜け出せておりません。https://engineer-milione.com/create/sakura-htaccess.html

やったこと

SSLを使用してwwwなしで統一したいため、さくらサーバーで使用していたドメインの「〇〇.com」に加えて「www. 〇〇.com」を新たに登録し、両方とも「wwwを付与せずマルチドメインとして使用する(上級者向け)」、と「SNI SSLを利用する」を選択してSSL証明書を設定しました。

その後ファイルマネージャーにアクセスし、/home/ユーザー名/wwwの下の「〇〇.com」の中にある既存の.htaccessの上部に下記コードを追記しました。

SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:HTTPS} !on RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>

また、「www.〇〇.com」という新しいフォルダを作り、/home/ユーザー名/wwwの下に設置し、その中.htaccessファイルを置いて下記コードを記述しました。

SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.〇〇.com RewriteRule (.*) https://〇〇/$1 [R=301,L] </IfModule>

/home/ユーザー名/wwwの下に、「〇〇.com」と「www. 〇〇.com」の2つがあり、「〇〇.com」にはサイトのすべての情報が、「www.〇〇.com」には.htaccessのみ入っている状態です。

現在の状態

httpsとhttp、wwwありなしの4パターンで試しましたが、いずれもまずhttps://〇〇.comに転送されますが、その後https://〇〇.com→https://〇〇.com→・・・とリダイレクトループが発生してしまいます。

コードの記述内容やフォルダ作成の場所、もしくは他のところが間違っているのでしょうか。
大変お忙しいとは存じますが、ご教示いただけますと幸いです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。