お名前.comのオールドなSDプランから、ハイカラなRSプランにWordPressを移行した時のお話。
まずhostsファイルで動作確認できないじゃん。
<問い合わせここから>
現在SDプランでWordPressサイトを運用中ですが、RSプランへ移行作業中です。
WordPressのファイル及びデータベースを手動で移行し、下記の方法でhostsファイルで表示確認行いました。
hostsファイル編集方法
https://help.onamae.com/answer/20182
httpsで管理画面にログインしようとすると、まだRSサーバーにはSSL設定されていないので、下記のエラーが表示されます。
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, nginx.
まだネームサーバーを変更出来ないので、下記のページによるとSSL申込みが出来ません。
【レンタルサーバー RSプラン】 SSLの申し込みができない、利用できない
https://help.onamae.com/answer/20310
そこでWordPressのDB上で https://example.com/ となっている箇所を一時的に http://example.com/ とSSLではない状態にしました。
SSLがない状態で管理画面にログインしようとすると、今度は「エラー: Cookie がブロックされているか、お使いのブラウザーで未対応のようです。」というエラーが出てログイン出来ません。
Cookieを有効にしてもエラーになるので、下記のサイトにあるように、httpsでアクセスできればログインできるかと思います。
【WordPressエラー】 Cookie がブロックされている表示でログインできない時の解決方法
以上のような状況ですが、WordPressにログインするために何か良い方法はありますでしょうか?
<問い合わせここまで>
<回答ここから>
お問い合わせいただいたところ大変恐縮ではございますが、この度のお問い合わせの解決方法としまして、ネームサーバー情報を変更し、SSLを設定していただくしか方法がない次第でございます。
大変お手数をおかけいたしますが、何とぞよろしくお願い申しあげます。
<回答ここまで>
まじかー、これは不安だー。。
ドキドキしながら、RSプランへネームサーバー切り替えました。
SSLも1時間くらいかかったが設定完了。
まずサイトが崩れた状態で表示、CSSやJSが読み込まれていない様子。
古いBizVectorのテーマを使っていたので、httpがhttpsにちゃんと切り替わっていない様子。
<?php wp_head(); ?>や<?php wp_footer(); ?>から吐き出されるので、下記サイト参考に修正。
[WP]SSL化してもwp_headとwp_footerがhttp://を出力するSSL混在コンテンツの問題について
おー、サイトがきれいに表示された!しかし・・・
今度はWP管理画面が開かず、ブラウザに下記のリダイレクトエラーが。
このページは動作していません
shigaisen.com でリダイレクトが繰り返し行われました。
Cookie を消去してみてください.
ERR_TOO_MANY_REDIRECTS
最近の流行りというか、CONOHAサーバーのときも苦労したけど、nginxを使ったサーバーにありがちのご様子。
定番の常時SSLのhtaccessの設定なんかを入れてはいかんのです。
これね、無駄なんです。
↓
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
結論としては下記サイトどおり、htaccessへの追記で表示されました。めでたし。
WordPress お名前.comレンタルサーバー内のWPサイト常時SSL化の際、リダイレクトループが発生した場合の対処方
https://analyzegear.co.jp/blog/1577
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
SetEnvIf X-Forwarded-Proto "http$" HTTPS=off
2023年11月13日 wp-config.phpに書き込む方法も見つけたので追記
define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
$_SERVER['HTTPS']='on';
}
ERR_TOO_MANY_REDIRECTSへの対処方法 – WordPressサイトのSSL化によりログイン管理画面にアクセスできない問題の解決