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

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

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

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

解決済

マルチサイトのSSL化、www統一なしの301二重リダイレクトで起きた問題

aaron1
aaron1

総合スコア0

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

2回答

0評価

0クリップ

6閲覧

投稿2018/04/07 01:26

###動作環境

使用CMS:wordpress Ver4・9・5
使用テーマ:Twenty Seventeen
使用サーバー:Xserver

前提・実現したいこと

Wordpressのマルチサイト(サブディレクトリ型)でサイトを運用しています。
https://exmaple.com
https://example.com/sub/
(両者ともWordpressをインストールしています。)

先日、このサイトを手動でSSL化したのですが、
メインサイトも子サイトも無事SSL化は完了しました。

**
ところが、①子サイトの方のみレイアウト崩れが生じています。
また、②子サイトの方のみ、ダッシュボードに入ることができず、
ダッシュボードに入ると、自動的に子サイトURLトップへリダイレクトされてしまいます。
**

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

・子サイトのみhttps://example.com/sub/のダッシュボードへ行けず、子サイトトップへ自動ディダイレクトされる。
・子サイトのみレイアウトが激しく崩れる(PCのブラウザからは崩れないことがあるが、IPAD、IPHONEで見ると崩れる)

疑わしい箇所

おそらく、htaccessの記述が間違っていると思われます。
下の方で、記述分を記載しました、すぐ下方にコンソールのソースもありますが、
不要であれば読み飛ばしていただけると幸いです。

(子サイトのコンソール)
Error parsing header X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube: insecure reporting URL for secure page at character position 22. The default protections will be applied.
0ohcrfzBDDc:1 Error parsing header X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube: insecure reporting URL for secure page at character position 22. The default protections will be applied.
c53.jpg Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
www-widgetapi.js:99 Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube.com') does not match the recipient window's origin ('https://exaple.com').
h.B @ www-widgetapi.js:99
uwg1BS2CM74?controls=0&rel=0&disablekb=1&showinfo=0&modestbranding=0&html5=1&iv_load_policy=3&autoplay=0&end=0&loop=0&playsinline=0&start=0&nocookie=false&enablejsapi=1&origin=https%3A%2F%2Fexaple.com&widgetid=1:1 Error parsing header X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube: insecure reporting URL for secure page at character position 22. The default protections will be applied.
c45-700x490.jpg Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
c46-700x543.jpg Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
c47.jpg Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
c48.png Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
c50-700x394.jpeg Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
c54-700x339.jpg Failed to load resource: net::ERR_TOO_MANY_REDIRECTS
c50-700x394.jpeg:1 GET https://exaple.com/sub/wp-content/uploads/sites/2/2018/03/c50-700x394.jpeg net::ERR_TOO_MANY_REDIRECTS
c47.jpg:1 GET https://exaple.com/sub/wp-content/uploads/sites/2/2018/03/c47.jpg net::ERR_TOO_MANY_REDIRECTS
c45-700x490.jpg:1 GET https://exaple.com/sub/wp-content/uploads/sites/2/2018/03/c45-700x490.jpg net::ERR_TOO_MANY_REDIRECTS
c46-700x543.jpg:1 GET https://exaple.com/sub/wp-content/uploads/sites/2/2018/03/c46-700x543.jpg net::ERR_TOO_MANY_REDIRECTS
c48.png:1 GET https://example.com/sub/wp-content/uploads/sites/2/2018/03/c48.png net::ERR_TOO_MANY_REDIRECTS
c53.jpg:1 GET https://example.com/sub/wp-content/uploads/sites/2/2018/03/c53.jpg net::ERR_TOO_MANY_REDIRECTS
c54-700x339.jpg:1 GET https://example.com/sub/wp-content/uploads/sites/2/2018/03/c54-700x339.jpg net::ERR_TOO_MANY_REDIRECTS

(親サイトのコンソール)
Error parsing header X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube: insecure reporting URL for secure page at character position 22. The default protections will be applied.
jPV8IQuu0DI:1 Error parsing header X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube: insecure reporting URL for secure page at character position 22. The default protections will be applied.

(感想)
親サイトのコンソールに比べると、子サイトのコンソールでは問題の指摘が遥かに多い。
親サイトもはじめは問題の指摘だらけだったのですが、プラグイン「search regex」で
http://example.com→https://example.comへの一括置換処理を実行した後、
問題の指摘箇所は圧倒的に減り、URL横に鍵マークがつくようになりました。
ちなみに、子サイトにも鍵マークはついています。

試したこと

・XserverでSSL化を当該ドメインへ適用

・WordpressのダッシュボードからのURL変更(http://example.com→https://example.com※)
(※マルチサイトで運営されているため、ダッシュボード内の一般設定からURLの変更はできなくなっていたため、PHPMyadminから変更し、無事、ダッシュボード内でのURLもhttps://example.com,
https://example.com/sub/へ、変更されました。)

・htaccessへのSSLリダイレクトへの記述(←おそらくこれが原因だと思われます。※)
(※当サイトはwwwなしに統一の301リダイレクト記述も既にされており、
そこにSSL用URLへの301リダイレクトを先日実行したので、私のような初級者に毛が生えた程度
の知識ではわけがわからない状態です。
さらにそこにマルチサイト(サブディレクトリ)用の記述もされており、わけがわからない状態です。)

・プラグイン「Search Regex」を使用し、
http://example.com→https://example.comへ一括置換しました。
(これにより、SSL用URLに鍵マークがつくようになりました。)

該当のソースコード(おそらく問題となっているhtacessの記述)

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^http://example.com RewriteRule (.*) http://example.com/$1 [R=301,L] RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteBase / RewriteRule ^index\.php$ - [L]

(←シャープマークが1つ入りますが、Teratail.comの投稿の使用で大文字化けするためカタカナで書きました)add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).) wp/$1 [L]
RewriteRule ^(.
.php)$ wp/$1 [L]
RewriteRule . index.php [L]
</IfModule>

補足情報(FW/ツールのバージョンなど)

子サイトと親サイトでは使用しているプラグインをあえてわけてあります。
たとえば、子サイトのみにAll in One Seo Packをインストールしています。
(検索エンジンに別サイト、別テーマのサイトであると認識させやすくするため)

大変にお手数をおかけしてしまいますが、
問題がおわかりいただける方は、ご回答いただけると幸甚です。
どうぞよろしくお願いいたします。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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