自分のための備忘録。他の誰かにも、役立ててもらえたら・・・

役立てて.com

WEB管理

サーバー移転とSSL化を同時に

更新日:

これから、5つほどあるドメインをSSL化してhttps://にし、さらに、現在wwwありだったり、なしだったりでアクセスされている状態をwwwありに統合します。サーバー移転とドメイン移管も視野に入れて・・という、私にとっては、少々複雑なことをやらなければならないのですが、既に、つまづいています。

(目次)

  1. ファイルのサーバー移転準備
  2. 移転先サーバーに、ドメイン登録をします
  3. サイトを移転先にアップして、自分だけ確認する
  4. ネームサーバーの変更です。
  5. メールの設定
  6. 独自SSLの設定
  7. .htaccessの変更(http=>https、wwwなし=>wwwあり、404エラーファイル表示)
  8. Google Search Consoleに登録
  9. エックスサーバーのアクセス解析設定
  10. googleアナリティクスの設定

スポンサーリンク


ファイルのサーバー移転準備

まず、移転させたいサイト内にある絶対リンク、http:をhttps:に変更します

移転先のサーバー(エックスサーバー)では、httpsにするので、まず、サイト内の各ソースを点検し、”http://ドメイン”などとなっている箇所を”https://ドメイン”に直します。これは、。ビルダーなどの一括置換機能を利用します。

気をつけなければいけないのは、スクリプトを呼び出すときに、”//~” などとなってしまていると、ビルダーで保存したときに、自動的に”http://~”となってしまうので注意が必要です。(ビルダーのバージョンが18だから、ということなのかもしれませんが、かなり面倒な仕様です。いろいろと、自動で書き換えてくれてしまうので、それらを無効にしても、これだけはうまくいかず、//で始まる保存ができませんでした。)

httpsのドメインなのに、中でhttpを呼び出してしまうと、ブラウザーにアラートが出てしまうので、せっかくきてくださる訪問者が、ちょいと躊躇してしまうのではないかと思います。きっちり”https://~にしましょうこんなふうに、気になるメッセージが表示されます。

移転先サーバーに、ドメイン登録をします

移転先(エックスサーバー)の「サーバーパネル」にログイン
「ドメイン設定」-「ドメイン設定の追加」-「xxxxxx.com」と移転予定のドメインを入力
この時点では独自SSL化のチェックははずします。
まだ、移転元(お名前.com)のネームサーバーを変更していないため、現時点で行うとSSL化は失敗に終わります。
また、wwwありも、なしも両方のURLでアクセスが可能です。となっていますので、後に、どちらか一方にするためにGoogleSearchConsole と、.htaccess の編集を行います。

サイトを移転先にアップして、自分だけ確認する

1.ファイル転送ツールなどで、新しい接続先を作り、FTP接続をしてファイルをアップします。
ここで、きちんと移転先でサイトが表示されているかどうかを確認します。エックスサーバーでは、「動作確認URLを追加して確認する方法」があります。
「サーバーパネル」にログイン-「動作確認用URL」-「動作確認URL設定の追加」-「xxxxxx.com」と移転予定のドメインを入力すると、動作確認アドレスが表示され、リンクされているので、そちらをリンクすると見ることができます。

2.他には、「hostsファイルを編集して確認する方法」があります。こちらは、一般的だと思います。
hostsファイルというのは、各パソコンに入っているファイルのことで、Windows10/8/7 だと、C:\WINDOWS\system32\drivers\etc\hosts
Mac OS Xだと、/etc/hosts/にありますので、メモ帳などのテキストエディタで編集します。

一番最後の行に、「サーバーIPアドレス + 半角スペース + ドメイン名(もしくはサブドメイン)」を入力して上書き保存します。

xxx.xxx.xxx.xxx yyyyyy.com
↑ここは、IPアドレス(「サーバーパネル」-「サーバー情報」に表示されています)

ネームサーバーの変更です。

ドメイン管理をしている会社は私の場合、移転元のお名前.comです。ドメイン移管については、契約期間のこともあり、まずは、サーバー移転のみなので、お名前.comの管理パネルに入ります。


「ドメイン」 - 右上にある「ドメイン設定」ボタン - 一番下の「その他の機能」

「ネームサーバーの変更」アイコンを選択すると、ネームサーバー設定ページに移れますので、ドメインを選択して、「その他のネームサーバー」へエックスサーバーのネームサーバーをコピペし、確認ボタンを押したら完了です。画面にも「完了しました」と出ますが、登録メールアドレスにも、ネームサーバー変更のメールがきます。

メールの設定

ネームサーバーを変更したら、すぐにやっておきたいのが、メールの設定。
新しいサーバーのほうでメールを作成します。古いサーバーのメールは、まだ、当分の間は受信できるままにしておきます。
すっかり新しいほうに移行するまでにタイムラグがありますから、新旧両方で受信できるようにしておくのです。

独自SSLの設定

ネームサーバーが浸透したら(新しいサーバーのほうにアクセスしているな、と思ったら)、エックスサーバーの「サーバーパネル」にログインし、設定対象ドメインを該当ドメインに合わせて「設定」 -「SSL設定」-「独自SSL設定の追加」で、設定完了です。失敗したら、しばらくたってから設定しなおします。
これで、エックスサーバー上のドメインはhttpsになりました。すぐにはアクセスできません。時間が経過したらアクセス可能になります。

.htaccessの変更

httpで接続してきた人をhttpsへ自動的に移行させるには、

————————–
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
————————–

これでよかったです。これは、エックスサーバーのサイトの中でも、SSL化したときには、.htaccessに、こう記述しなさいと記されているものです。

これと同時に、wwwなしのURLできた人をwwwありに移行させるのは、

————————–
RewriteEngine on
RewriteCond %{HTTP_HOST} ^xxxxxx\.com$
RewriteRule ^(.*)$ https://www.xxxxxx.com/$1 [R=301,L]
————————–

のはずなのですが、、、困ったことに、うまくいきません。http:からhttps:への記述と同時には書けないのでしょうか。
ちょっと調査が必要です。リファレンスマニュアルがあるとうれしいんですが。

・・・・・・・で、
————————–
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.xxxxxx.com/$1 [R=301,L]

—————————

こうしてみたら、http://www.、http://、https://www、http:// すべてで
http://www.xxxxxx.comに無事転送されました。

ポイントとしては、最後の行のあとに、半角スペース+「改行」をしたことかなと思っています。
もっと深く掘り下げて調べたい気持ちもありますが、これからやらねばならないことが目白押しなので、目的が達成されたということでよしとします。

ちょっとだけ解説すると、

!on と off は、同じ意味です。!は否定をあらわします。
[OR] は、文字通り、条件の「または」です。
^ は、文字始まりを意味します。
.* は、すべてを意味します。
%{HTTP_HOST} !^www\. ドメインがwwwなしだったら、という意味です。

%{HTTP_HOST}や%{REQUEST_URI} を利用ししたほうが汎用性があってカッコいいですが、
とにかく、https の wwwありにしたいので、これで大丈夫だと思います。

エラーページ(file not found 404)を独自に作成した場合

エックスサーバーは、「サーバーパネル」-「ホームページ」-「エラーページ設定」がありますので、そこで、設定したい各種のエラーコードを有効にすると、

——————————————————
ErrorDocument 404 /404.html
——————————————————

このように.htaccessに追記されますが、実際に存在しないファイル名を入力すると、

  • 表示URLは入力したもののまま
  • 内容が404.htmlのものになる

これは、きちんと404 HTTP ステータス コードで返してくれている証拠なのですが、下層のファイルにエラーがあったときに、404ページ内での画像やcssなどリンクが切れる場合があります。

そのため、最初、独自ドメインの絶対パスを指定しました。

以前、

——————————————————————————–

404.htmlを置く位置や、.htaccessの位置、サーバーの会社にもよると思うのですが、絶対パスのほうが安心かなと思います。他の原因があるかもしれませんが、絶対パスにしたらうまくいきましたので、このようにしました。
——————————————————
ErrorDocument 404 https://www.xxxxxxx.com/404.html
——————————————————

——————————————————————————–

と、書いていました。ところが、

  • 表示URLは404.htmlになる
  • 内容が404.htmlのものになる。どの階層のファイルがない場合でも画像やcssのリンク切れがない

と、なります。

後になって、例えば、これって、404.htmlが何かのひょうしに削除されてしまった場合はどうなるんだろう・・・と、考え、google様のサイトを調べていると、

エックスサーバーのエラーファイル設定が自動で記述したように、

/404.html と指定した場合に、404.htmlが削除されてしまったときは、想定の範囲内らしく問題ないそうですが、

絶対パスの場合は、どうも無限ループになりそうな感じで、NGです。

さらに、「ソフト404」というものに該当しているようで、404 HTTP ステータス コードを返すよう、google様のサイトに記載がありました。
よって、ごちゃごちゃ考えず、エックスサーバーの設定にお任せし、デザインがくずれないように工夫して404.htmlを作る、ということが正解です。

.htaccessは、行の最後に必ず「改行」をして、記述を終了させましょう。

Google Search Consoleに登録

登録して、グーグル様にhttps:のwwwつきが私の正規ドメインですよ。と、伝えます。
これ、指定するとグーグル様からのメッセージは、やはり、きちんと301で飛ばす設定しなさいよ。と、きます。

また、さきほどの、404がソフト404になってますよ、というメッセージも、お知らせしてくれます。

今回は、まず、登録だけ!ということで。

自分なりに、Search Consoleについては、こちらのページに備忘録
google様のSearch Consoleはこちら

エックスサーバーのアクセス解析を設定

一番簡単にアクセス解析結果を見ることができます。
「サーバーパネル」-「アクセス解析」-「アクセス解析の設定」

今後は、このアクセス解析設定リンクをクリックすると、訪問者や検索エンジン情報などがわかります。

googleアナリティクスでも解析設定

余裕があったら、やはりgoogleアナリティクスも利用したいところです。
ドメインを登録して、コードを取得したら、サイトの各ページのタグ直後にそのコードをコピーします。こちらも、一括置換などでコピーしてしまいましょう。

-WEB管理
-, , ,

Copyright© 役立てて.com , 2018 All Rights Reserved Powered by STINGER.