【WordPress】サイトのURLが勝手に変更されるので応急処置した

最近WordPressのアクティビティログを確認したら「ホームのURL」と「サイトのURL」を変更した旨のメッセージが大量に出力されていた。

メッセージは不定期に出力されているけど、だいたい以下の内容が1セットになっている様子。

  • WordPressのアドレス(ホームのURL)を「https://XXX.XXX.XXX.XXX/」と設定しました
  • WordPressのアドレス(サイトのURL)を「https://XXX.XXX.XXX.XXX/」と設定しました
  • WordPressのアドレス(ホームのURL)を「https://www.yusukesakai.com/」と設定しました
  • WordPressのアドレス(サイトのURL)を「https://www.yusukesakai.com/」と設定しました
  • WordPressのアドレス(ホームのURL)を「https://yusukesakai.com/」と設定しました
  • WordPressのアドレス(サイトのURL)を「https://yusukesakai.com/」と設定しました

このサーバのIPアドレス(XXX.XXX.XXX.XXX)への変更とwww付きURLへの変更後、元のURLに戻るのが繰り返されている。傾向としては、IPアドレス変更から元のURLに戻るまでがだいたい5~10分、発生間隔は30分~1時間くらいが多かった。もちろん該当時間に操作した身に覚えなし。

気付いたときには元のURLに戻ってるし、自分がアクセスしたときはエラー等発生していないし問題ないのかもしれないけど、何となく気持ちが悪いので以下の対処をした。

wp-config.php

以下の行をコメントアウトして、設定反映のためにNginxを再起動した。ちなみに、サーバの引っ越しをしてからずっとBitnamiのデフォルト設定だった。

# define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
# define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/');

おそらく、$_SERVER['HTTP_HOST']でリクエスト情報をもとにURLを定義しているのがまずかったようなので、固定値にするか、以下のような記述でもOKなはず。

define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/');
define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME'] . '/');

なお、WordPressの仕様で、wp-config.phpに'WP_SITEURL''WP_HOME'の設定があると、GUIの設定項目がグレーアウトされて変更できないらしい。知らなかった。

原因の推測

そもそも何故IPアドレスやwww付きURLのリクエストが届くのか。

検証していないので確証はないけど、何となくCloudFlareが怪しいと思っている。このサイトはCloudFlareでDNS設定しているので、サイト状態確認のためにIPアドレスでのアクセスとかあっても不思議ではないかと。

とりあえず、URLは変更されなくなってアクティビティログも落ち着いたので、しばらくはこのまま様子見かな。

コメント