ブログURLのタイプをサブディレクトリ型にして、ルート直下に WordPress MU ファイルを置かず、サブディレクトリに WordPress MU ファイルを置き、各ブログURLを WordPress MU と同レベルに置きたい場合、(ややこしい)
つまり
WordPress MU ディレクトリ:example.com/wpmu
ブログURL:example.com/blog1,example.com/blog2
にしたい場合、通常版WordPressのような設定だけでは解決できないのでメモ。
- ブログURL変更
- サーバに index.php と .htaccess を設置
- index.php 修正
- wp-config.php 修正
- 各種通知メールの修正
WordPress MU では WordPress の一般設定にある「WordPress のアドレス (URL)」「ブログのアドレス (URL)」が各ブログ側の設定では表示されない、、ので、
admin権限でログインし、サイト管理 > ブログ から該当ブログの「編集」をクリック、ブログ情報の「パス」のみを変更し保存。
(上述の例で言うと、パスを「/wpmu/blog1/」から「/blog1/」に変更)
通常版WordPressの公式ドキュメントと同様に、 WordPress MU ディレクトリにある index.php と .htaccess をルートディレクトリにコピー。
追記:どうやら index.php は要らないみたい
require('./wp-blog-header.php');
を該当ディレクトリに変更。
(上述の例で言うと、パスを「./wp-blog-header.php」から「.wpmu//wp-blog-header.php」に変更)
通常版WordPressなら、ここまでで設定完了なのだが、MUの場合は次がポイント!
38行目と40行目
$base = '/wpmu/';
define('DOMAIN_CURRENT_SITE', 'example.com' );
define('PATH_CURRENT_SITE', '/wpmu/' );
を
$base = '/';
define('DOMAIN_CURRENT_SITE', 'example.com' );
define('PATH_CURRENT_SITE', '/' );
に変更。
これで完了!
この設定で今後追加するブログのデフォルトもルート直下になる。
追記:ブログディレクトリを変更すると、Wordpressからの各種通知メール内のURLが違ったパスになるので変更
ユーザー追加時の招待メールの wp-activate.php へのURLが違ったパスになるので
wpmu-functions.phpの1146行目
http://{$current_site->domain}{$current_site->path}wp-activate.php
を
http://{$current_site->domain}{$current_site->path}該当ディレクトリ/wp-activate.php
に変更
同じくパスワード再発行の wp-login.php へのURLが違ったパスになるので
wp-login.phpの148行目
$message .= 'http://' . trailingslashit( $current_site->domain . $current_site->path ) . "wp-login.php?action=rp&key=$key\r\n";
を
$message .= 'http://' . trailingslashit( $current_site->domain . $current_site->path ) . "該当ディレクトリ/wp-login.php?action=rp&key=$key\r\n";
に変更

こんにちは
MU 2.7.1を導入したばかりの初心者です。
こちらの手順を参考にディレクトリの変更を行い、
おかげさまで概ね成功したのですが、
ルート直下に設定したメインブログのダッシュボードだけ、
「wp-admin.css」を読み込まず、崩れてしまいます。
調べたところ、このcssだけ参照パスがなぜか「~/wp-admin.css」ではなく
「~/wpmu/wp-admin.css」になるのが原因のようなのですが、
どこかを修正すれば直るでしょうか?子ブログは問題なく参照されています。
もう一点、やはりメインブログのみ、
wp-comments-post.phpを認識せず、コメントをつけられない不具合もあります。
お分かりになれば、教えていただけると助かります。
thさん、どうもこんにちは
私の場合、メインブログを example.com/wpmu、子ブログを example.com/blog1,2,3としてるので
問題なく表示されてるのですが、
確かにメインブログをルート直下に置いた時に何かとエラーがあったかと思います。
(簡単な回避方法が見つからず、このディレクトリ構成にしたように思います)
たぶん本体ファイルをいくつか修正すれば回避できると思うのですが、
アップグレードが大変なので、やめました。
この構造のまま実現する場合は、リダイレクトが一番手っ取り早いと思います。
すいません、お役に立てず、、。一度試してみて下さい。
ご解答、助かりました。
やはり色々と面倒が起こるのですね。
こちらのようにメインのアドレスをサブディレクトリに戻して、
リダイレクトをする場合、ルートにコピーした.htaccessを修正すればいいのでしょうか?
そうですね、ルート直下に .htaccess を移動して、
リダイレクトの一文を追加すればOKですね。
(メインブログディレクトリの .htaccess は不要になります)
リダイレクトについては
http://www.google.co.jp/search?hl=ja&q=.htaccess+Redirect
のあたりを参考に。
今回の場合ですと、
Redirect permanent /index.php http://example.com/メインブログディレクトリ/index.php
になりますね。ご参考までに。
ご丁寧にありがとうございました。
MUはほとんど情報が無いの、とても助かりました。
[...] しまう・・ なぜ?なぜなの? 下記ページの内容でようやく解決しました。 WordPress MU ブログディレクトリの変更 上記ページを参考にwp-config.phpの表記を変更して解決しました。 ■変更前 [...]
MU2.8.4を導入しました。
wp-muをwp-muというデレクトリーに置いて
ルートにblog5でブログを設置しました。
貴ブログの上記記事に出会いまして
カスタマイズした結果、記事は表示されるのですが
コメントを押すとNOT foundが表示されます。
書かれている内容は、実施したつもりですが、
対策がありましたら教えていただけるとありがたいのですが
よろしくお願いいたします。