😊

WordPressのURL変更方法とhttpsの正規化

2024/05/15に公開

WordPressのインストール先をexample.com/wpなどと指定した場合に、本当はURLをhttps://example.comにしたいのにhttps://example.com/wpから変更できない!といったことがあると思います。
そんなときにWordPressのURLの変更方法を紹介します。

またURLの変更に.htaccessファイルの編集も行うので一緒にhttpsへの正規化についても紹介します。

URLの変更方法

そもそもわざわざサブディレクトリを作成してそこにインストールしなくても、ルートディレクトリ直下にインストールすればいいじゃないかと思うかもしれません。
しかし、サブディレクトリにインストールすると以下のような利点があります。

  1. ルートディレクトリの中の階層構造が明確になり、管理しやすくなる
    WordPress以外のシステムも搭載するようになったときにどのフォルダがどのシステムか把握しやすくなります。
  2. セキュリティ対策ができる
    悪意のある第三者からの攻撃があったときに、サブディレクトリにWordPressがインストールされているとどこに存在しているのかわかりづらくなります。サブディレクトリにWordPressを設置したうえでWordPressとの関連性が薄い名前にすることが有効な対策になります。
  3. 1つのドメインで複数のWEBサイトを運用できる
    サブディレクトリを分けることで、1つのドメインに複数のWEBサイトを導入することができます。

上記のサブディレクトリにインストールする利点を理解した上で、今回はWordPressのインストール先をexample.comに設定したときに、URLを以下のように変更する方法について順を追って説明します。

https://example.com/wphttps://example.com

1. WordPress管理画面の設定変更

まずはじめにWordPressの管理画面からURLの設定を変更していきます。
管理画面にログインし、「設定 > 一般設定」のページで「サイトアドレス(URL)」の末尾のwpを削除します。

元はこの状態になっています。
元のサイトアドレス設定
変更後はこのようになります。
変更後のサイトアドレス設定

上記の設定変更をした後、保存を押します。

2.「index.php」「.htaccess」の編集

wpのサブディレクトリにWordPressをインストールした場合、次のようなディレクトリ構造になっています。(使用しているレンタルサーバー等により多少の違いがあります)

example.com
└── public_html
    ├── index.html
    └── wp
        ├── wp-admin
        ├── wp-content
        ├── wp-includes
        ├── .htaccess
        └── index.php

FTPソフトからサイトフォルダの1階層目のwpフォルダ内にあるindex.php,.htaccessをダウンロードします。
それぞれ次のように編集をします。

index.phpの編集

index.php
-   require('./wp-blog-header.php');
+   require('./wp/wp-blog-header.php');

.htaccessの編集

.htaccess
-   RewriteBase /wp/
-   RewriteRule . /wp/index.php [L]
+   RewriteBase /
+   RewriteRule . /index.php [L]

3. ファイルのアップロード

FTPソフトのサイトフォルダ1階層目にindex.htmlがある場合は削除します。
その後、編集したindex.php.htaccesswpフォルダと同じ階層にアップロードします。

4. 設定反映の確認

上記の設定完了後https://example.comにアクセスしてください。
これまでhttps://example.com/wpに表示されていたページがhttps://example.comで閲覧できるようになっているはずです。

301リダイレクトの設定

ついでによくhttphttpsのURLの正規化も.htaccessファイルで一緒に設定するので追加で書いておきます。
wpフォルダと同じ階層に置いた.htaccessファイルの一番上に次のよう内容を追記します。

.htaccess
# httpからhttpsへのリダイレクト
RewriteEngine on
RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

.htaccessファイルの詳しい使い方についてはこちらでも説明していますので、気になる方はご覧ください。
https://zenn.dev/chamii/articles/htaccess-use

最後に

WordPressをサブディレクトリにインストールしたときのURLの変更方法とhttpsの正規化について説明しました。
これを覚えるのは大変なので、メモとしてもここにきて手順を追いながら毎回確認していただけるといいかと思います。

参考サイト

Discussion