Multi-blogging in subdirectories (wordpress3.0) Sakura Internet

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

Upgrade to WordPress3.0 (Sakura Internet)を参考にしてください。「ツール」に「ネットワーク」が出てくるまでは同じです。

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

・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]

Leave a Reply to taak(ハッスルサーバー) Cancel reply

Required

This site uses Akismet to reduce spam. Learn how your comment data is processed.

7件のコメントがあります

  1. アップありがとうございます。
    私の場合は、マルチサイト化にする場合、誤ってサブドメインにしてしまいましたが、フォーラムを探してもこんなに細かく記載されておらず。困っていました。おかげ様でサブレィレクトリに変更できました。

    Reply to this comment
  2. 魁文堂 能瀬明

    シン(エックスサーバー)さん
    Thank you for your comment.
    私も色々試してみてこの方法が使えるのを発見しました。
    マルチサイトを楽しんでくださいね(^^)

    Reply to this comment
  3. はじめまして。WPのマルチサイト化でサブディレクトリ形式にすることができず、
    困っている中、こちらのサイトを見つけました。

    手順通りやっているのですが、
    wp-config.phpを変更した後の.htaccessが確認できません。
    「ツール」に「ネットワーク」が現れません。

    Therefore,
    能瀬明様の.htaccessの内容はみな共通だと思うのですが、
    変更後の.htaccessの内容を教えていただけないでしょうか?
    こちらのページに映っている.htaccessの画像は途中で右側が切れてしまっているように思うので。

    .htaccessを教えてもらい、それを貼りつけたいと思っています。

    大変お手数かけてしまいますが、
    お願いできたらうれしいです。

    Reply to this comment
  4. すいません、

    何をしたら見えるようになったのかわかりませんが、
    .htaccessのコード全て見えるようになり、
    それをコピーしたところ、
    マルチサイト化ができました。

    まだテンプレートの変更が必要だったり、いろいろ疑問点が残っていますが、
    とりあえず、ブログの画面が表示できました。

    thank you very much.

    Reply to this comment
    1. 魁文堂 能瀬明

      taakさん
      Thank you for your comment.
      無事に解決されたようで良かったです。
      .htaccessが見えないって事はありえないのですが。。。

      以下、私のサーバーにある.htaccessを書いておきます。
      AddHandler x-httpd-php5 .php .phps

      # BEGIN WordPress

      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]

      # END WordPress

      Reply to this comment
en_USEnglish