WordPressトップページをWordpressインストールフォルダの親階層に展開したときに、ややこしいことになったのでメモ。(以後WordpressはWP表記)
前提条件とゴール
- 既存WPあり。ドメインは仮に”hoge.com”。
- サイトトップページ(https://hoge.com/)はWPで管理されていない静的html(/root/index.html)。
- WPインストールディレクトリは”/root/wp/”、URLは”hoge.com/wp/”。
- 個別投稿のパーマリンク設定は「数字ベース(https://hoge.com/wp/archives/123)」(Trailing Slash無し)。
これを継承して、以下仕様で拡張。
- サイトトップページ(https://hoge.com/)をWP固定ページにする。
- WP投稿ページは既存URLの”https://hoge.com/wp/”を継承。
- 個別のWP投稿も既存URLを継承。
ディレクトリで見ると以下のような感じ。
# ディレクトリ構成
/root(https://hoge.com/)
├ index.php(サイトトップ:静的HTMLからWP固定ページに変更)
└ /wp(WPインストールディレクトリ)
サイトトップページをWP固定ページに変更する
まず、サイトトップページをWP固定ページにするために、WPトップページの展開場所を一階層上げる必要がある。
これは「”index.php”と”.htaccess”の変更」「WPの「サイトアドレス(URL)」設定変更」で対応。
“index.php”と”.htaccess”の変更
- WPインストールディレクトリ直下(/root/wp)から、”index.php”と”.htaccess”をダウンロード。
- Index.phpを修正。
変更前
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
変更後
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
※ 「wp」はWPインストールディレクトリ名
- .htaccessを修正
変更前
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
変更後
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
- 修正した”index.php”と”.htaccess”を、”/root/”にアップロード。
ダウンロードした”/root/wp/”直下の”index.php”と”.htaccess”はそのまま。
WPの「サイトアドレス(URL)」設定変更
- WP管理画面の「設定」>「一般」に移動。
- 「サイトアドレス (URL)」にトップページの展開URLを入力(https://hoge.com)
これでサイトトップページ(https://hoge.com/)にWPトップページが展開されるようになる。