問題
解決策
「index.php」、「.htaccess」、「データベース」の3点に変更を行います。
WordPressをサブディレクトリに配置する。
静的に組まれたサイトの一部(ブログ等)にWordpressを入れる場合、サブディレクトリに配置する場合が多いのではないでしょうか。
今回はWordpressをサブディレクトリに配置する手順をご紹介します。
「Wordpress」のダウンロード
サイトへアクセスします。
【ダウンロード | WordPress.org 日本語】
https://ja.wordpress.org/download/
ダウンロードしたZIPを解凍し、フォルダを丸々、サブディレクトリに配置します。
ここに注意!
WordPressのフォルダ名は、そのままだと「wordpress」ですが、このフォルダ名ですとWordpressを使っていることが一目でわかってしまい、悪意ある第三者からの標的となってしまうため、フォルダ名をリネームするようにしてください。
「Wordpress」のセットアップ
WordPressのフォルダにアクセスし、セットアップを行ってください。
ここに注意!
データベース接続子について、デフォルトは「wp_」となっていますが、こちらもWordpressであることが丸わかりとなってしまい、悪意ある第三者からの標的となってしまうので、別の文字列+アンダーバー(_)に変えて設定するとより安全になります。
WordPressフォルダ直下から「index.php」と「.htaccess」をルートディレクトリへコピー
WordPressフォルダの直下にある「index.php」と「.htaccess」をルートディレクトリへコピーします。
コピーしてきた「index.php」の最後の行の記述を以下のように変更します。
書き換え前:index.php
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
書き換え後:index.php
require( dirname( __FILE__ ) . '/Wordpressのフォルダ名/wp-blog-header.php' );
データベースの書き換え
次に、データベースの書き換えを行います。
手法は2パターンあります。
- WordPressの管理画面の「設定」→「一般」から、サイトアドレス(URL)を書き換える。
- 「phpMyAdmin」等でデータベースにアクセスし、「○○_options」テーブル内の「home」を書き換える。
①Wordpressの管理画面の「設定」→「一般」から、「サイトアドレス(URL)」を書き換える。
WordPressの管理画面にログインし、左メニューの「設定」の中にある「一般」をクリックします。
するとサイトの設定画面が表示されますので、その中の「サイトアドレス(URL)」を書き換えます。
「http://○○○○/Wordpressのフォルダ名」となっているので、Wordpressのフォルダ名とその手前のスラッシュ(/)を削除し、一番下の「変更を保存」をクリックしてください。
②「phpMyAdmin」等でデータベースにアクセスし、「○○_options」テーブル内の「home」を書き換える。
「phpMyAdmin」等でデータベースにアクセスすると、先ほどセットアップで設定した接続子の付いたテーブルが複数表示されます。
その中のテーブルで、「○○_options」という名前のテーブルをクリックして開きます。
そしてoptionsテーブル内の「home」というカラムに、 「http://○○○○/Wordpressのフォルダ名」と記述されていますので、「編集」をクリックし、 WordPressのフォルダ名とその手前のスラッシュ(/)を削除し、一番下の「実行」をクリックしてください。
以上が、Wordpressをサブディレクトリに配置する場合の手順になります。
ですが、トップページを編集する場合はテーマ内の「home.php」か固定ページをhomeとして扱うことになり、それでは都合の悪い場合があります。
なので、ルートディレクトリの「index.html」または「index.php」を生かしたままにする設定方法を以下に記載します。
トップページ用のファイルをそのまま生かす場合の手順の変更点
ルートディレクトリの「index.html」または「index.php」を生かしたままにする場合の手順の変更点は以下になります。
- WordPressフォルダ内の「index.php」はルートディレクトリにコピーしません。
- コピーしてきた「.htaccess」に追記を行います。
上記2点以外は、手順は同じとなります。
②コピーしてきた「.htaccess」の頭に追記を行います。
コピーしてきた「.htaccess」の頭に以下のように追記します。
「.htaccess」
# BEGIN WordPress
RewriteEngine On
RewriteBase /Wordpressのフォルダ名/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /Wordpressのフォルダ名/index.php [L]
# END WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /Wordpressのフォルダ名/index.php [L]
# BEGIN WordPress
RewriteEngine On
RewriteBase /Wordpressのフォルダ名/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /Wordpressのフォルダ名/index.php [L]
# END WordPress
- 頭に同じ形式での記述(#(シャープ)の行以外)をコピーで追加し、「RewriteBase」からWordpressのフォルダ名とスラッシュ(/)を削除します。
ここに注意!
「# BEGIN WordPress」から「# END WordPress」の間の記述は、WordPressによって書き換えが行われる部分です。
その書き換えの実行の行われる主なタイミングは「パーマリンク設定を保存した時」です。
独自の記述をここに入れてしまうと、いずれかのタイミングで書き換えられてしまうので、独自の記述はこの部分の外側に記述するようにしてください。
参考ページ
【【WordPress】URLはそのままにスッキリとサブディレクトリにインストールする方法 | ITエンジニアラボ】
https://it-engineer-lab.com/archives/1331
【WordPress で.htaccessの編集内容がいつのまにか勝手に消えている時はここをチェック!】
https://nrbm-music.com/168/
コメント