サイトをお引越ししたら、
こんなエラー画面になって
お困りではないでしょうか?
【無効なURLです。
プログラム設定の反映待ちである可能性があります。
しばらく時間をおいて再度アクセスをお試しください。】
「しばらく時間をおいて」っていうので、私は待ってしまいました。
・・しかし、2日経っても変わりません。
流石におかしいと思い、調べたところ
「SSL設定」が原因だったんです。
SSLを直したらエラーはすぐ治りました。
これは待ってても治りませんよー。
同じところで困っている方は
ひょっとしたらこれが原因かも…?
「無効なURLです」と表示される理由
SSL設定、していませんか?
ちょっとややこしい話で恐縮ですが・・・
お引っ越し前のさくらサーバーでは
SSLという「セキュリティ設定」をしていました。
最近のサイトは、みんなしていると思います。
設定すると、アドレスが
http://wp-firststep.com から
https://wp-firststep.com
に変わります。Sがつくんですね。
このように、アドレスが変わるので
間違ってSがない方のアドレスに
アクセスしてしまったお客様のために
httpの、Sがない方にアクセスしてきた方がいらしたら
httpsの、Sつきのアドレスに、転送してあげてね
と、但し書きをしておくんです。
この但し書きが、今回の原因でした。
サーバーお引っ越しの手順
お引っ越しの手順を追って説明しましょう。
今回、「さくらサーバー」で使っていたサイトを
「エックスサーバー 」に引っ越しました。
1 ドメイン登録
エックスサーバーに、
さくらサーバーで現在使っているアドレス(ドメイン)を登録する。
2 WordPressインストール
とりあえずエックスサーバーに新しくWordPressをインストールして
データベースのIDとPWをつくる。
3 データダウンロード
さくらサーバーから、引っ越ししたいサイトの
データ(データベースとファイル)をダウンロードして
4 ID・パスワード書き換え
データベースのIDとパスワードを、
新しく作ったエックスサーバーのIDとパスワードに書き換えます。
そろそろ訳が分からなくなって来ましたね(笑)
さらっと、こんな流れだということだけ
見ていただければ大丈夫です。
5 引っ越し先にデータをコピーする
そして、作ったデータを
エックスサーバーのWordPressに上書きしてコピーします。
これで。もとのサイトと全く同じデータが入ったことになります。
6 ドメイン設定変更
あとは、ドメインを登録してるところ
(ムームードメインや、お名前ドットコムなど)に
このアドレスは、エックスサーバーに引っ越したよ、とお知らせします。
今までさくらサーバーに設定していたところをエックスサーバーに変更し、
(反映したら)元のサイトのデータを消して全て完了です!
という手順でございました。
ここで見落としていたのは
手順 1番 だったんです。
新しいドメインを、エックスサーバー に登録しました。
この時、エックスサーバーのアドレスは「http」なんです。
まだSがついていません。
そうなんです、初めからSはついていないので、
「https」にするときは、エックスサーバーに
別に設定をしないといけないんです。
それに気づかず、5番で、さくらサーバーで使っていた
データを全部コピーしてしまいました。
但し書きもそのまま、まるっとです。
そのため、こんな状態になっていました。
【元のサイト】
① httpsにしてね、と言われましたが、
さくらサーバーはSSL設定済みなのでOKです。
それを、エックスサーバー にそのままコピーしてしまうと・・
【コピーしたサイト】
① httpsにしてね、って言われても・・
あれ、まだ、SSL設定されていないみたい。
httpsに飛ばしてくれ、って言われてもなー
なんかね、SSLまだみたいよ
というわけで冒頭の画像が出るんです。
「SSLの、設定してるんなら反映待ちじゃないの?」っていう意味だったんですね。
もちろん、SSL設定してあげるまで、この表示は治りません。
じゃあ、そのままエックスサーバーで
SSL設定しちゃえばいい?
ちょっと気になったので、ファイルを確認してみたところ・・・
さくらサーバーの.htaccess記述に注意!
httpsに転送してね、という但し書きは
「.htaccess」というファイルに書きます。
さくらサーバーで使っていたデータに
なんて書いてあるか、確認してみました。
そうしたら、こんなでした。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !/wp-cron\.php$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END Force SSL for SAKURA
# BEGIN SAKURA Internet Inc.
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch “\.(css|js)$”>
ExpiresDefault “access plus 1 week”
</FilesMatch>
<FilesMatch “\.(gif|jpe?g|png)$”>
ExpiresDefault “access plus 1 month”
</FilesMatch>
</IfModule>
# END SAKURA Internet Inc.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
さくらサーバー独自の記述がたっぷり!
これはエックスサーバーではいらないですね。。
残っていても、関係ないので問題ないかもしれませんが
どう作用するかわかりませんので、
いらない記述は消しておいた方が良いでしょう。
というわけで、一旦.htaccessは消して
エックスサーバーで作り直したのでした。
同じトラブルに遭った方は、SSL設定をチェックしてみてね!