WordPress Tips

WordPressをサブディレクトリからルートに移動したり、ディレクトリ名の変更方法

2016-07-24

WordPressをサブディレクトリからルートに移動したり、ディレクトリ名の変更方法

WordPressをサブディレクトリにインストールした後に、ディレクトリ名を変更したくなったり、ディレクトリを移動させたい(サブディレクトリ→ルート)時の変更方法を解説します。

WordPressをサブディレクトリにインストールするメリット

WordPressをドキュメントルート直下でなく、サブディレクトリにインストールするメリットは

・サブディレクトリごとに複数WordPress運営が可能、管理しやすくなる
・WordPress以外にもファイルがあった場合、ルートがごちゃごちゃしない

と言ったところでしょうか。

エックスサーバー はサブドメインを設定すると、ドメインのドキュメントルートにサブドメインの専用ディレクトリが作成されます。

さくらのレンタルサーバ カラフルボックスはドキュメントルートにマルチドメインも配置されます。

WordPressのコアファイルとマルチドメイン、サブドメイン用のディレクトリが一緒に存在してしまうと、メンテナンスしづらいということになります。

そんな時にサブディレクトリにWordPressをインストールすれば管理しやすく、誤ってデータを削除してしまうなんていう危険も少なくなります。

サブディレクトリにインストールしたwordpressをルートに移動する

サブディレクトリにインストールしたWordPressのサイトURLをルートに変更する手順と403エラーの対処法。

すでにサブディレクトリ(例:wp)にインストールしている場合を想定。

1)設定>一般にてサイトアドレスのみ変更

現在の設定
WordPress のアドレス (URL):http://example.com/wp
サイトアドレス (URL):http://example.com/wp

変更後
WordPress のアドレス (URL):http://example.com/wp
サイトアドレス (URL):http://example.com/

2)index.phpと.htaccess をルートへコピー

WordPressのインストールディレクトリにあるindex.phpと.htaccess  をルートディレクトリにコピーする

※パーマリンクの設定をしていない場合、.htaccessは生成されていない場合もあり

3)ルートにコピーしたindex.phpを編集

以下の通り修正する


修正前

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

修正後

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

4)パーマリンク設定を更新

ログイン後、パーマリンク設定を更新する。

403エラー(Forbidden)が出た場合

これはCPIレンタルサーバの場合だけかもしれませんが、サイトURLを変更したら403エラーがでました。

ルートディレクトリにある.htaccessに以下を追記

Options +FollowSymLinks

何度試しても新しいURLにならない場合

パーマリンクを更新してもルートURLにならない場合は以下の方法を試してください。

  • キャッシュを削除する(ブラウザキャッシュ、プラグインによるキャッシュなど)
  • ブラウザを再起動する

私はキャッシュを削除しても新しいURLにリダイレクトされなかったのですが、ブラウザを再起動して確認したら新しいURLで表示されるようになりました。

インストール後にディレクトリ名を変更する

WordPressインストール後のディレクトリ名変更も手順を踏めば可能です。

例)
変更前URL  https://example.com/wp/

変更後URL  https://example.com/new/

1)変更前のWordPressURL(/wp/wp-login.php)にログイン

設定→一般から、WordPress アドレス (URL)とサイトアドレス (URL)を変更したいディレクトリ名に変更する

wordpress一般設定

「変更を保存」するとページがNot Foundに。

notfound

これはこのまま置いておく。

2)ディレクトリ名を変更したい名前に変更

FTPやファイルマネージャーで、ディレクトリの名前を変更する。

ここでは「wp」を「new」に変更

3)変更後のURLに改めてアクセスする

https://example.com/new/wp-login.php

ログインするとNotFoundのままだったりしますが、キャッシュを削除すれば表示されると思います!

-WordPress Tips