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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

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

受付中

htaccessでのリダイレクトがうまくいかない

maiko_01
maiko_01

総合スコア0

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

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

0回答

0評価

2クリップ

1075閲覧

投稿2019/01/22 18:36

編集2022/01/12 10:55

前提・実現したいこと

さくらインターネットのスタンダードプランでサイトを作成しております。
http://hogehoge.jp/
http://www.hogehoge.jp/
https://hogehoge.jp/
https://www.hogehoge.jp/
http://hogehoge.jp/index.php
http://www.hogehoge.jp/index.php
https://hogehoge.jp/index.php
https://www.hogehoge.jp/index.php
URL正規化により、上記を全て「③https://hogehoge.jp/」に統一しようとしています。

問題1:⑧だけリダイレクト前にプライバシーエラーが表示される

「⑧https://www.hogehoge.jp/index.php」だけが一旦リダイレクトされず、URLがこのままアクセスしようとし、Chromeの場合プライバシーエラー(wwwはSSLが適用されていないため)が表示されます。
そして、詳細設定⇒「hogehoge.jpにアクセスする」と進むと、ページにアクセスし、リダイレクトされます。
wwwを含むパターンだと、②や④や⑥もありますが、これらはプライバシーエラーが出ずに、www無しへリダイレクトされます。
なぜ、⑧だけダメなのでしょうか?

問題2:Chromeのシークレットウィンドウでは挙動が異なる

上記の問題、Chromeのシークレットウィンドウではなぜかプライバシーエラーが出ずに正しく動作するんです。

そして逆に、シークレットウィンドウでのみindex.php無しの「④https://www.hogehoge.jp」がリダイレクトされず、そのまま表示されてしまいます。
「②http://www.hogehoge.jp」でも、④にリダイレクトされ、wwwが残ったままアクセスされます。


まとめると、
通常ウィンドウ:⑧のみ×
シークレットウィンドウ:②、④が×

該当のソースコード

htaccessに以下の記載をしています。

htaccess

<IfModule mod_rewrite.c> RewriteEngine On <IfModule mod_rewrite.c> RewriteEngine On #------------------------ # www無しに正規化 #------------------------ RewriteCond %{HTTP_HOST} www¥.hogehoge¥.jp RewriteRule .* https://hogehoge\.jp$1 [R=301,L] #------------------------ # index.php無しに正規化 #------------------------ RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ http://hogehoge.jp/$1 [R=301,L] #------------------------ # SSLにリダイレクト #------------------------ RewriteCond %{ENV:HTTPS} !^on$ RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

解決策をご存知の方、ご教授くださいm(__)m

良い質問の評価を上げる

以下のような質問は評価を上げましょう

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

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806
m.ts10806

2019/01/22 23:04

タグに「\.htaccess」を追加してください。「php」もあった方がいいかもしれません
m.ts10806
m.ts10806

2019/01/22 23:05

逆に「HTML5」はないほうがいいですね。本件とは関係なさそうです
CHERRY
CHERRY

2019/01/22 23:11 編集

前提として\.\.\. SSL証明書は、www 付きとwww 無しの両方が必要ですが、ホスト名に対応したSSL証明書がそれぞれ設定されているということでよろしいですか?
otn
otn

2019/01/23 00:12

・他のブラウザで挙動が同じか調べてみる ・ブラウザのキャッシュをクリアする
maiko_01
maiko_01

2019/01/23 03:30

皆様返信ありがとうございます! otn様 上記を試しましたが、挙動は変わりませんでしたm\(__\)m CHERRY様 なるほど・・。 ssl証明書のコモンネームはwww無しで登録しておりますので、wwwは保護されません。 ※契約時には検討が足りず「リダイレクトさせるしwww無しでいこう」と考えていました。 これが原因なのですね。 でも、②④⑥が警告が出ず、⑧だけアウトなのはなぜなのでしょうか?
wwbQzhMkhhgEmhU
wwbQzhMkhhgEmhU

2019/01/23 03:41

よく分からないのに横槍入れてすみません。まずは気になったとこだけ。 ・2番目のリライトでhttpになっちゃうケースがありそうです。 ・疑問なのですが、htaccessはルートに1つだけですか? 情報としても以下が必要です。 ・apacheのログ ・ブラウザのネットワーク記録 さくらのレンタルサーバは特殊な設定が必要なように見えるので、それと合わせて見てみるしかないと思います。失礼しました。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

.htaccess

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