サブディレクトリのWordPressをドメイン直下のルートディレクトリで公開する方法
作業前の公開URL https://example.com/wp
作業後の公開URL https://example.com
作業行程
1. WordPressの管理画面でサイトアドレスを変更する
設定 > 一般設定 内の「サイトアドレス(URL)」の /wp を削除し、[変更を保存] をクリックします。
注意:「 WordPressアドレス(URL)」は変更しないで下さい。
変更前
URL https://example.com/wp
変更後
URL https://example.com
2.パーマリンク設定を保存する
設定 > パーマリンク へ移動し、何も変更せずに[変更を保存] をクリックします。
この操作で、 WordPressに更新を伝えます。
3.ファイルの複製
FTPで、 インストールディレクトリにある index.php と .htaccess を、ルートディレクトリにコピーします。
注意:移動ではなくコピーを行います。
4.コピーした index.php を編集する
ルートディレクトリにコピーした index.php を編集します。
WordPressが インストールされているサブディレクトリのパス(今回は / wp )を追加します。
インストールした環境や状況によって下の2通りのどちらかで書かれていると思います。
// __DIR__ の場合
//編集前
require __DIR__ . ‘/wp-blog-header.php’;
↓
//編集後 ( /wpを追加 )
require __DIR__ . ‘/wp/wp-blog-header.php’;
// ( dirname( __FILE__ ) の場合
//編集前
require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );
↓
//編集後 ( /wpを追加 )
require( dirname( __FILE__ ) . ‘/wp/wp-blog-header.php’ );
5.コピーした .htaccess を編集する
RewriteBase と RewriteRule の2箇所を編集します。
index.phpと.htaccessの記述を変更することで参照先を変更しています。
# 編集前
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# ↓変更箇所
RewriteBase /wp/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# ↓変更箇所
RewriteRule . /wp/index.php [L]
# 編集後
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# ↓変更箇所
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# ↓変更箇所
RewriteRule . /index.php [L]
6.URLが変更されたことを確認する
ドメイン直下のURLでアクセスできていたら成功です。
作業前の公開URL https://example.com/ wp
作業後の公開URL https://example.com