wordpressをサブディレクトリにインストールし、ルートをサイトURLにするというのは一般的で、やり方もよく紹介されています。
要するに、サイトURLを「https://example.com」、ワードプレスのインストールディレクトリを「https://example.com/wp」にするような方法ですね。
参考【WordPress】URLはそのままにスッキリとサブディレクトリにインストールする方法
ここからさらに発展して、サイトURLを「https://example.com/blog/」、ワードプレスのインストールディレクトリを「https://example.com/blog/wp/」のようにしたかったのですがちょっと迷ったのでメモがてら書いておきます。
サブサブディレクトリにWPをインストールしサブディレクトリをサイトURLにする方法
まず、https://example.com/blog/wp/にwordpressをインストールします。
その後、ダッシュボードにログインし「設定>一般設定」と進み上記画像のようにサイトアドレス(URL)を「https://example.com/blog」wordpressアドレス(URL)を「https://example.com/blog/wp/」に設定します。
その後、wpディレクトリ(example.com/blog/wp/) 、ルートディレクトリ(example.com/blog/)にFTPでindex.phpと.htaccessファイルをそれぞれ下記で上書きします。
ルートディレクトリ(example.com/blog/)に入れるindex.phpファイルと.htaccessファイル
index.phpファイル
[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/wp-blog-header.php’ );
[/php]
.htaccessファイル
[php]
# BEGIN WordPress
# BEGIN WordPress
から END WordPress
までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
[/php]
wpディレクトリ(example.com/blog/wp/)に入れるindex.phpファイルと.htaccessファイル
index.phpファイル
[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 __DIR__ . ‘/wp-blog-header.php’;
[/php]
.htaccessファイル
[php]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/wp/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/wp/index.php [L]
</IfModule>
# END WordPress
[/php]
さいごに
毎回迷うので自分用の備忘録メモですが、参考になる人もいるかもしれないと思い公開しました。
今後のwpの使用により変わる可能性はあり責任はもてませんが、少しでも参考になれば幸いです。
コメント