新着記事

サブディレクトリでマルチブログ(wordpress3.0)さくらインターネット

  • B!

wordpressを3.0にFTPを使わないで自動でアップグレードしたら、サブドメインで運用する設定になってしまい困っている人がいると思います。
実は私も困っていました。
いくつかトライして強制的にサブディレクトリで運用できるようになったので備忘録です。
尚、この方法はエックスサーバー(このサイトがあるサーバー)でも使えました。
ファイルをエディタで開くときは設定を必ずUTF-8 BOMなしで開いて、保存してください。

WordPress3.0へアップグレード(さくらインターネット)を参考にしてください。「ツール」に「ネットワーク」が出てくるまでは同じです。

「ツール」の「ネットワーク」をクリックして書かれている通りの作業をします。

・wp-contentの中にblog.dirのフォルダを作ります。
・wp-config.phpをFTPでダウンロードしてエディタで開きます。
「/home/******/www/*****/ にある wp-config.php ファイルの、/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ という行よりに以下のコードを追加してください。」
と書かれている下の窓にあるコードをコピーして指定の場所へ貼り付けるのですがここで変更箇所があります。

[php]
define( ‘MULTISITE’, true );
define( ‘SUBDOMAIN_INSTALL’, true );
$base = ‘/’;
define( ‘DOMAIN_CURRENT_SITE’, ‘exsample.com’ );
define( ‘PATH_CURRENT_SITE’, ‘/’ );
define( ‘SITE_ID_CURRENT_SITE’, 1 );
define( ‘BLOG_ID_CURRENT_SITE’, 1 );
[/php]
このコードの中の2行目
[php]
define( ‘SUBDOMAIN_INSTALL’, true );
[/php]
を以下のように変更。
[php]
define( ‘SUBDOMAIN_INSTALL’, false );
[/php]

trueをfalseに変更します。

.htaccessも指示通りに変更してFTPでwp-config.phpと.htaccessをアップロードします。
再ログインします。
この時点ではまだサブディレクトリでマルチブログが作れる状態ではないので注意して下さい。
実際にはサブディレクトリを指定してブログを追加できますが、CSSが反映されない、ダッシュボードが見つからないエラーが出るなど不具合だらけです。

再度、「ツール」の「ネットワーク」をクリックします。
表示されているコードが変わっているはずです。
.htaccessのコードに注目!
私の場合は

[xml]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]

# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule . index.php [L]
[/xml]
が以下のように変わっていました。
[xml]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
[/xml]

この変わった.htaccessのコードをコピーして前に貼りつけたコードに上書きして変更、保存してFTPで上書きアップロードします。

再ログインして「特権管理者」の「更新」をクリックして、「ネットワークの更新」のボタンを押下してネットワークを更新してください。←この部分はあとで追加しました。
これで自動アップグレードを使って更新したサイトもサブディレクトリでマルチブログが作れるはずです。

参考にエックスサーバーでの.htaccessの中は以下の通りです。さくらインターネットは1,2行目がありません。

[xml]
AddHandler x-httpd-php5 .php .phps

# BEGIN WordPress
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress
[/xml]