一時期、レンタルサーバーでWordpressの簡単インストール機能を使うと、サブディレクトリにしかインストールできないことが多かったです。
その理由として、Wordpress本体のzipファイルがwordpressというディレクトリの下にアーカイブされている影響があったのかもしれません。
最近では、このような制限がないレンタルサーバーがほとんどで、サブディレクトリにしかインストールできないレンタルサーバーの方が圧倒的に少なくなりました。
今でも、サブディレクトリにしかインストールできない代表的なレンタルサーバーはGMOのiClustaです。
この記事では以下のような内容をまとめておきたいと思います。
- サブディレクトリにインストールしたWordpressをルート公開するデメリット
- サブディレクトリにしかインストールできないレンタルサーバーでルートにインストールするには?
サブディレクトリにインストールしたWordpressをルート公開するデメリット
サブディレクトリにインストールしたWordpressをルート公開する方法はとても簡単です。
検索するといくらでも出てきます。
ポイントだけまとめておくと以下のようになります。
- ルートにindex.phpをコピーして内容を編集
- 設定⇒サイトアドレスからサブディレクトリを削除
表示させるだけなら、これでうまくいきますが、ダッシュボードにログインするとrest APIがらみで起きるトラブルが報告されています。
厄介なのが、Xserverで多くのトラブルが報告されていることです。
トラブル事例:Redirectionプラグインが動作しない
サブディレクトリ⇒ルート公開した後のサイトでは、rest APIの問題で、Redirectionプラグインのインストールが失敗して使用できません。
回避するには、サブディレクトリの時点でインストールしてあればインストール時の問題は回避できますが、そのまま正常に動作するのかは不明です。
トラブル事例:ブロックエディタで編集できない
ブロックエディタもrest APIを使用します。
記事の編集ができなくなるというトラブルが報告されています。
サブディレクトリにしかインストールできないレンタルサーバーでルートにインストールするには?
サブディレクトリにインストールするとデータベース接続まで自動で行ってくれるはずです。
WordPressが動作する状態であれば、設置場所を移動するのはそれほど大変ではありません。
- サブディレクトリ内のファイルを好きな場所に移動しましょう。
- .htaccesの記述にサブディレクトリが含まれているので、削除する。
- wp-config.phpにて、サブディレクトリ無しのsite urlとhome urlのdefineを追加します。
- サイトの表示が正常なことが確認できたら、functions.phpで、site urlとhome urlを設定します。
- その後、wp-config.phpのdefineは削除します。
サブディレクトリにインストールしたWordpressを引き続きルート公開する場合
site urlとhome urlをフックで一致させることで、問題が回避できる可能性があります。
まとめ
サブディレクトリにインストールしたWordpressをルート公開する場合、何が変わるのか?と言えば、site urlとhome urlが不一致になることです。
この不一致が全ての問題ですので、インストール場所と公開場所を一致させるようにするしかないです。