サブディレクトリにインストールしたWordPressのURLをルートドメインに変更したら見事にトラブった件

WordPress本体

WordPressをサーバーのドキュメントルートにインストールした場合は何も考えなくてもそのWordPressサイトのURLは https://honyarara.com のようになりますが、サブディレクトリにインストールした場合は当然 https://honyarara.com/hoge/ のようになってしまいます。

当エントリーではそれを honyarara.com で表示させる為の方法について書きたいわけではなく、その時にある事をしておかないと思いがけない不具合が発生するかもしれませんよ?というか実際に私自身がやらかしたばかりの実体験からトラブルの解決に至るまでのお話になります。

ルートドメインについて

その前にルートドメインでググると「普段は入力する事の無いドメインの一番右側の.(ドット)の事」とかいう説明も出てきますが、当エントリーでは単純に honyarara.com というサブディレクトリをつけない状態のURLの事を指しているだけですので、念の為。

サブディレクトリにインストールしたWordPressのURLをルートドメインに変更

その方法についてはざっくりとしか書きませんが一応。

まずダッシュボードの 設定 > 一般 を開いて サイトアドレス (URL) からサブディレクトリの部分を削ります。

修正したら一番下にある 変更を保存 を忘れずに。

絶対やっちゃダメ的な

WordPress アドレス (URL)の方は絶対にイジっちゃダメです。絶対にイジっちゃダメです。大事な事なので2回言いました。押すなよ、絶対押すなよ的なアレじゃなくて実際ヤバいのでマジでやめた方がいいと思います。

この時点で既にダッシュボードにアクセス出来なくなっているので、落ち着いて以降の作業をさっさと進めてしまいましょう。

次にWordPressをインストールしたサブディレクトリからindex.phpと.htaccessをコピります。.htaccessは無ければ後から作成すればよかったような気がします、たぶん。

index.phpを開いて一番最後の行だけ編集します。

require( dirname( FILE ) . '/wp-blog-header.php' );

これをこんな感じに

require( dirname( FILE ) . '/hoge/wp-blog-header.php' );

index.phpはルートドメインにあるけどWordPress本体はインストールしたサブディレクトリを参照するように変更するわけですね。

更新が済んだらindex.phpと.htaccessがあればそれもルートドメインのフォルダに放り込みます。

これで通常通りログインページからダッシュボードにアクセス出来るようになったはずなので、設定 >パーマリンク から 変更を保存 をクリックして空更新します。そうすると.htaccessが作成されるんじゃなかったかな…確か。

ざっとこんな感じでここまでの手順は割といいかげんなのであまりアテにしない方がいいと思いますが、これでサブディレクトリにインストールしたWordPressのURLをルートドメインに変更する事が出来たと仮定して話を進めますね?

こんな症状が出てませんか?

ここからはサブディレクトリに~(長いので以下略)したらおかしくなった的な症例になります。人によっては微妙に違う現象が発生するかもしれませんが、何れにしてもよくわからないけどたぶん何かおかしいと思えるようなら次の項で紹介する対応が必要かもしれません。

WordPressのツールバーが表示されない

ツールバーというのはブラウザの最上部に表示される黒い帯状のメニュー、というかこんな感じのやつです。これが表示されてないとダッシュボードに入るのがいちいち面倒なんですよね。

ダッシュボードから ユーザー >プロフィール にある サイトを見るときにツールバーを表示する にチェックが入っていても表示されないんですよねぇ…

投稿のYouTube埋め込みが固まる

Gutenbergの埋め込みブロックにYouTubeのURLを貼り付けて 埋め込み をクリックすると、いわゆる読み込み中アイコンが延々とぐるぐるしっぱなしで一向に終わる気配が無い状態に突入します。

ちなみにこの状態で少し様子を見つつ裏でサーバー管理画面を開いてイジってたらCPU使用率が限りなく100%近くになってる事に気付いたという…慌てて止めましたが久々に変な汗かきましたわ。

Rest API絡み?で不具合が発生する

たまたまインストールしたリダイレクト系のプラグイン(Redirection)設定時にRest APIがーとか言ってエラーでハネられたのでYouTubeの埋め込みの件もこれ絡みっぽいのかな?と。

とりあえず困った時の王道的な解決法

正直どうしたらいいのかさっぱり見当もつきませんしマジでお手上げな状態でしたが、とりあえず困った時にはお約束的なコレをやってみました。

一旦ログアウトして再度ログイン。

あっさり直りやがりました…やだなんか悔しい。

ぶっちゃけ納得いかないところもありますが、私の場合はそもそもWordPressの根本的なところからよくわかってませんのでね?仮に誰かが懇切丁寧に説明してくださっても「なるほどわからん」的な感じかと思われるのであえて深く追求しない事にします。

困った時は再起動的なアレで

Windowsなんかでも割とよくある話ですが「何故かはわからないけど何となく再起動したら直りました」的な雑対応なのでこの通りにしたところで解決しない可能性もある事はご了承を。とりあえず同じような症状が発生していた場合は藁にもすがる気持ち&ダメ元でお試しいただければ幸いです。