【ルートディレクトリの変更】サブディレクトリ(/wp/)にインストールしたWordPressをドメイン直下に表示させる方法!

本サイトはアフィリエイト広告を利用しています。

【ルートディレクトリの変更】サブディレクトリ(/wp/)にインストールしたWordPressをドメイン直下に表示させる方法!のイメージ画像

WordPressをインストールするとき、フォルダを作ってその中にWordPressのデータを入れたりすることがあると思います。
例えばwpフォルダとかを作ったり。

そうすると、アドレスが

https://shiritai.net/wp/

となってしまいます。
そうじゃなくて、

https://shiritai.net

にしたいですよね。そんな場合にはちょっとだけ設定が必要になりますので、こちらで説明します。

スポンサーリンク

WordPressの管理画面の設定

まずはログインして、「設定」から「一般」を選びます。

subdirectory01

subdirectory02

サイトアドレス (URL)をドメイン直下のアドレスが表示されるように

https://shiritai.net

とします。

くれぐれもWordPressアドレス(URL)のほうを変更しないようにしてください。こちらは管理画面のアドレスです。ここを変えるとログインができなくなりますので。

一番下にある「変更を保存」ボタンを押して、管理画面からの設定は終わりです。

index.phpファイルの修正

フォルダ「wp」にWordPressの中身一式を入れた場合、/wp/index.php
index.phpファイルを開いてください。
同じ階層に「wp-adminフォルダ」や「wp-contentフォルダ」などがあります。

<?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-blog-header.php' );

こんな感じで書いてあると思います。

一番下の/wp-blog-header.phpの部分を
/wp/wp-blog-header.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' );

変更しましたら、index.phpを/wp/フォルダの上の階層にアップしてください。
wpフォルダ
index.php
と同じ階層になるように。

.htaccessを修正

index.phpと同じ階層に.htaccessはありますか?FTPから確認してみると、通常はあると思いますが、WordPress本体の中には最初はありません。
WordPressの一般設定等していくと作られるファイルです。
FTPから確認し、ダウンロードします。

.htaccessを開くと下記のような感じで命令が書かれていると思います。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

# END WordPress

このファイルの
4行目のRewriteBase /wp/を「/」にして8行目のRewriteRule . /wp/index.php
の/wp/を削除して
RewriteRule . /index.php

にします。

もしも.htaccessがないようでしたら

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

をエディタにコピペしてhtaccess.txtで保存しておいて
FTPからアップするときに「名前を変更してアップ」から.htaccessにして
さきほどと同じwpフォルダと同じ階層にアップしてください。

wpフォルダ
index.php
.htaccess

とFTPからみたら同じ階層に見えるようにします。

.htaccessはセキュリティ上パーミッションは「604」を指定しておきましょう。
逆に「604」になっていてダウンロードできない場合は、「644」などにしてから修正してアップしてまた「604」に戻しましょう。
パーミッション設定は極めて重要なので忘れずに、必ず確認してください。

リダイレクトの設定

URLの表示を変えているわけですから、リダイレクトの設定もしておきましょう。
詳しくは下記をご確認ください。

WordPressでサーバーを引っ越し、ドメインを取って運用する際、新サイトへ301リダイレクトを設定する方法
いままで使用していたドメインを変更し、httpからhttpsにしたい、旧サイトから新サイトへ301リダイレクトを設定し、転送する方法を書きたいと思います。

コメントをどうぞ

  1. まる より:

    初めまして!
    更新の影響でいろいろ触っていたら、ドメイン直下の設定がいつの間にか消えていて
    検索で数か所のサイトを試しても解決されなかったのですが、ここはとても理解しやすく説明されいて理解しながら私でも直すことができ感謝です!!

    ひとつ質問がありますが、index.phpを/wp/フォルダの上の階層にアップをしたあと、wpにあるindex.phpは削除するのでしょうか?
    お時間あれば返信いただけると嬉しいです。

  2. maron より:

    まるさん、初めまして

    知りたいねっと管理人です。
    コメントありがとうございます。
    直すことができて何よりです。
    質問の回答ですが、消しても消さなくても問題ないと思いますので、そのままでよいのでは?と思います。
    消した状態も確認しましたが、普通に管理画面もサイトも機能します。
    ただ違うサーバー、環境で万が一ということもありますし、
    あと、上の階層に置いていたindex.phpとhtaccessの存在を忘れてて、うっかり消しちゃったという時に/wp/内にあれば、またコピペして使用できるかと思うので、あってもいいのではと思いました。
    どうぞよろしくお願い致します。