これから、5つほどあるドメインをSSL化してhttps://にし、さらに、現在wwwありだったり、なしだったりでアクセスされている状態をwwwありに統合します。サーバー移転とドメイン移管も視野に入れて・・という、私にとっては、少々複雑なことをやらなければならないのですが、既に、つまづいています。
(目次)
- ファイルのサーバー移転準備
- 移転先サーバーに、ドメイン登録をします
- サイトを移転先にアップして、自分だけ確認する
- ネームサーバーの変更です。
- メールの設定
- 独自SSLの設定
- .htaccessの変更(http=>https、wwwなし=>wwwあり、404エラーファイル表示)
- Google Search Consoleに登録
- エックスサーバーのアクセス解析設定
- 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アナリティクスも利用したいところです。
ドメインを登録して、コードを取得したら、サイトの各ページのタグ直後にそのコードをコピーします。こちらも、一括置換などでコピーしてしまいましょう。