問題 × 解決策

WordPressをサブディレクトリに配置する

問題

Wordpressをサブディレクトリに配置するには?

解決策

「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のフォルダ名とその手前のスラッシュ(/)を削除し、一番下の「実行」をクリックしてください。

カラム「home」の「編集」をクリックします。

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/

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2 × 5 =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧