[WordPress]サブディレクトリにインストールしサイトURLをドメイン直下に変更する方法

WordPressを使うときに、そのままルートディレクトリにおきがちでしたが、**サブディレクトリにおくほうが、なにかとメリットが多い**と知ったので、忘れないうちにまとめておきます。

- ルートディレクトリ…ドメインの直下で一番上の階層にあるディレクトリのこと。
- サブディレクトリ……ルートディレクトリの中に作られたディレクトリ。階層の深さは関係ない。

ついでに今日はまなちゃんがいつまでたっても仲良くなれない、まろんを貼っておきます。
気持ちよさそうに寝てますね。かわいい。
<img width="300" alt="mojikyo45_640-2.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304162/72a740c6-d0b0-5770-0747-dbb2a4bc3824.png">

#なぜサブディレクトリにインストールするのか :thinking:
##:o: ルートディレクトリがスッキリする。
今後WordPress以外のディレクトリが必要になったときなど、**WordPressと混在しなくなり、メンテナンスもしやすくなる。**
##:o: 1つのドメインで複数のサイトができる
サブディレクトリで区切ってWordPressをインストールすれば、1つのドメインで複数のサイトを運営できる
##:o: セキュリティ上のリスクが減る
WordPressを攻撃する側は、WordPressのコアファイルがルートディレクトリにインストールされていると想定していることが多い。
そのため、**WordPressがサブディレクトリにインストールされていて、ディレクトリ名も当てづらい名前にすれば、攻撃を受けにくく、比較的安全性が高くなる。**
#だがサブディレクトリにインストールするデメリットもある :thinking:
##:x: インストール時に手間がかかる
サブディレクトリにインストールするためには、**インストール先を指定し、WordPressの設定を変えるなど、ひと手間がかかる。**
##:x: リスク分散ができない
**これは、１つのドメインでサブディレクトリで区切り、複数のWordPressを運営したときにかぎる話だが**、1つのサイトに、攻撃、アクセス集中、検索順位下落などの問題が生じると、同じドメインのすべてのサイトに影響がおよんでしまう。さらに、どのサイトにトラブルが起きたのかわかりずらい。



---


#本題！サブディレクトリにインストールし、サイトURLをドメイン直下に変更する方法 :wink:
上記のように、メリットは格段に多いので、サブディレクトリにインストールし、サイトURLをドメイン直下に変更する。
##①サブディレクトリにインストール
サブディレクトリに、いつもどおりWordPressをインストールする。
**※ディレクトリ名は「ｗｐ」などではなく:x:、推測されづらい名前にしたほうがセキュリティ面では安心。:relaxed:**
今回は`wprs`というサブディレクトリ名で説明していく。
##②ダッシュボードでアドレス（URL）の設定をする
`設定>一般`を開く。
`サイトアドレス(URL)`と`WordPressサイトアドレス(URL)`は、どちらも`http://sample.com/wprs`となっている。
この`サイトアドレス(URL)`を**`http://sample.com`**にし、`変更を保存`を押して変更する。
<img width="900" alt="設定後" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304162/dea6fb15-ac3e-c4bb-216d-ccfdcb292710.png">
管理画面での設定は以上！:relaxed:
##③インストールしたWordPressの一番上の階層の`index.php`ファイルの設定をする。
###`index.php`ファイルをドメイン直下に移動。
インストールしたWordPressの一番上の階層の`index.php`をWordPressをインストールしたサブディレクトリ（今回は`wprs`）と並列になるようにおく。
※`.htaccess`があったら、一緒に直下に移動する。:couple:
###`index.php`ファイルを修正する。
WordPressの一番上の階層の`index.php`ファイルをエディタで開くと、下記のようになっている。

```php:index.php
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );

/** Loads the WordPress Environment and Template */
require dirname( __FILE__ ) . '/wp-blog-header.php';
```

17行目の`/wp-blog-header.php`を`/wprs/wp-blog-header.php`に変更する。
wprsは自分がWordPressを入れたサブディレクトリ名にしてね:point_up_tone2:

```php:index.php
/** Loads the WordPress Environment and Template */
require dirname( __FILE__ ) . '/wprs/wp-blog-header.php';
```

保存する。:wink:

##④完了！ :heart_eyes:
この設定をすると、

- WordPress管理画面は`http://sample.com/wprs`
- サイト自体は`http://sample.com`

で見れるようになる:v:

##※うまく表示されないときは :smiling_imp:

管理画面から、`設定>パーマリンク設定`を開き、**何も変更せず`保存`**をする。

これでうまくいく、はず :angel_tone2:

#まとめ :sunny:
セキュリティめんは一番大事にしたいところなので、サブディレクトリにしない手はないですなあ。:information_desk_person_tone1:
いい勉強になった。

#参考サイト
[サイトURLをドメイン直下に変更する方法](https://gekkan-fukugyou.jp/how-to-change-wordpress-directory/)
[サブディレクトリ\(/wp/\)にインストールしたwordpressをドメイン直下に表示する方法【ルートディレクトリを変更】 \| かわたま\.net](http://kawatama.net/web/974)
わかりやすかったです！:point_up:
ありがとうございます。