日常のあれこれ。

フリーのフロントエンジニア。サーバーサイドも現在勉強中...webデザイン・フロントエンド・イラスト作成・LP用漫画作成を主なシゴトとしています^^日々学んだことをアウトプットしていきます。

WordPressのURLをサブドメインからメインドメインに変更する方法

f:id:creat4869:20190807232832p:plain

サブドメインの方がいいと思ってサブドメインにWPをインストールして進めていたけど、
「あ、やっぱりメインドメイン表示にしたい!」
ってなること、ありますよね笑

私もそんな経験をしたので、その時にメインドメインに変更した手順を書いていこうと思います^^

『一般』の変更

WPのダッシュボードにある『設定』→『一般』の
『サイトアドレス(URL)』がサブドメインになっていると思うので、
メインドメインに変更する。

※『WordPressアドレス(URL)』の方にもサブドメインが記述されていると思いますが、そちらは変更しないでくださいね。

パーマリンク設定』の変更

WPのダッシュボードにある『設定』→『パーマリンク設定』へ行き、
何も変更せずに『変更を保存』を押す。
本当になにも変更せずに保存だけしてくださいね!

FTPソフトを使ってindex.phpを編集

FTPソフトでWPをインストールしているサブディレクトリの階層までいき、
その階層にあるindex.phpファイルをPCのデスクトップかどこかにダウンロードする。

ダウンロードしたファイルをテキストエディタで開き、

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

という記述があると思うので、それを

require( dirname( __FILE__ ) . '/サブディレクトリ名/wp-blog-header.php' );

に変更し、保存する。
保存したら、FTPソフトでメインディレクトリの階層までいき、編集したファイルをアップロードをします。

たとえば、https://exam.comというドメインだったとしたら、
今の状態だとサブディレクトリにWPを入れていると思うので、
https://sub.exam.comとかみたいなURLになっていると思います。

なので、メインディレクトリの階層というのは、/exam.com/public_htmlの中に今のファイルを入れます!

メインディレクトリ内にある.htaccessを編集

メインディレクトリの階層の中に.htaccessというファイルがあれば、
それをPCのデスクトップかどこかにダウンロードする。
※もしメインディレクトリの.htaccessファイルがなければ、サブディレクトリの階層のなかにある.htaccessファイルをダウンロードしてください。

ダウンロードしたファイルをまたテキストエディタで開き、以下の以下のコードを追加します。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /サブディレクトリ名/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /サブディレクトリ名/index.php [L]
</IfModule>
# END WordPress

編集したら保存し、メインディレクトリ内に戻します(上書き)。

301リダイレクト処理をする

次は、サブディレクトリの階層内にある.htaccessファイルを編集するので、ダウンロードします。
そして、以下の301リダイレクト処理を記述します。

もともとファイル内に#BEGIN WordPressという記述があると思うので、それより上に記述します。

RewriteEngine On
RewriteCond %{http_host} ^サブディレクトリ名.メインドメイン名.com
RewriteCond %{REQUEST_URI} !^(.*)?wp-login\.php
RewriteCond %{REQUEST_URI} !^(.*)?wp-admin
RewriteCond %{REQUEST_URI} !\.css$
RewriteCond %{REQUEST_URI} !\.js$
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.gif$
RewriteCond %{REQUEST_URI} !\.png$
RewriteRule ^(.*) https://メインドメイン名.com/$1 [R=301,L]

『サブディレクトリ名.メインドメイン名.com』のところは、https://sub.exam.comというサブドメインだったら、
『sub.exam.com』を入れます。

https://メインドメイン名.com』のところは、今から変更したいドメインを入れます。

RewriteCond %{REQUEST_URI} !〜の記述は、逆にリダイレクトさせたくないものを入れています。
WPの管理画面とかは、リダイレクトしてしまったら入れなくなってしまうので、

RewriteCond %{REQUEST_URI} !^(.*)?wp-login\.php
RewriteCond %{REQUEST_URI} !^(.*)?wp-admin

というように書いて、リダイレクトさせないようにしています。
編集できたら、サブディレクトリの階層にファイルを戻します(上書き)。


以上!
これで、サブドメインにWPを入れたままで、URLはメインドメインにすることができたと思います^^