akiyoko blog

akiyoko の IT技術系ブログです

WordPressのサブディレクトリをURLから見えないようにする

前回「さくらのVPS (CentOS 6.3) に LAMP+WordPress」 の続きです。

前回は、さくらのVPSに最新版のWordPress 3.4.1 を導入しました。

1台のサーバで複数のWordPressを運用することを想定して、ドキュメントルート (/var/www/html/) 配下に、サブディレクトリ「wp_test」を配置しました。

/var
 └ www
   └ html
     └ wp_test
        .htaccess  # パーマリンク設定をすると自動的に生成される
        index.php
         ・
         ・

これで、「http://49.xx.xx.xx/wp_test/」でアクセスできるようになったわけですが、今回は、このサブディレクトリ「wp_test」をURL上から見えないように(つまり「http://49.xx.xx.xx/」でアクセスできるように)変更したいと思います。


【目的】


前回同様、さくらのVPSのホストアドレスは「49.xx.xx.xx」と記述しますので、必要に応じて適宜読み替えてください。

 

1. ダッシュボードから設定変更

WordPressのダッシュボードから、「設定」 -> 「一般」をクリック。
以下のように内容を変更して、保存します。

変更前 変更後
WordPress アドレス (URL) http://49.xx.xx.xx/wp_test そのまま
サイトアドレス (URL) http://49.xx.xx.xx/wp_test http://49.xx.xx.xx

f:id:akiyoko:20120914015139p:plain


次に、「設定」 -> 「パーマリンク設定」から、任意のパーマリンクを選択して、変更を保存します。

これで、「/var/www/html/wp_test」直下に「.htaccess」が生成されるはず。「.htaccess」は、「3. .htaccessをコピーして修正」で使用します。
f:id:akiyoko:20120914015150p:plain

 

2. index.phpをコピーして修正

「wp_test」直下の index.php をドキュメントルート直下にコピペします。

$ sudo cp -a /var/www/html/wp_test/index.php /var/www/html/


コピーしたファイルを、以下のように修正します。

<?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('./wp-blog-header.php');             // 変更前
require('./wp_test/wp-blog-header.php');   // 変更後


 

3. .htaccessをコピーして修正

同じように、「wp_test」直下に生成した .htaccess をドキュメントルート直下にコピペします。

$ sudo cp -a /var/www/html/wp_test/.htaccess /var/www/html/


コピペ後に、ダッシュボードから再度、パーマリンクの設定を保存すると、

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

# END WordPress

が、

# 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

に変更されるはず。これで、完了です。


http://49.xx.xx.xx/」にアクセスして、トップページが表示されればOK。



参考