WordPressのマルチサイトの検証

【サイト構成】

メインサイト(example.com)

├ Aブログ (example.com/a/)

├ Bブログ (example.com/b/)

└ Cブログ (example.com/c/)

メインサイトではA~Cの投稿の最新情報を引っ張って掲載。

 

【確認すること】

このサイト構成で、「WPアプリ」が使用できるか。

 

1.マルチサイトにする。

テスト環境のさくらインターネットを使用。
テスト環境なので、ドキュメントルートではなく、「test」フォルダの中の「wp」というフォルダに、サブドメインをかぶせて使用中。
・・・・・・これがのちのちのエラーに響くとは、予想だにしなかったというか、しとけって感じだけども。

とても親切に説明されている以下のブログ記事を参考にしました。

WordPressのマルチサイトの設定方法|1つのWPで複数のブログを管理しよう(〜ver.4.0)

ディレクトリでマルチサイトにする場合は、「define(‘SUBDOMAIN_INSTALL’, false);」にすることを注意すること以外は、上記記事の説明でさくさく設定できました。

 

2.管理画面にログインしてみる。

メインに、メイン管理者のIDとパスワードでログインすることはできました。

サブサイト(Aブログ)では、まずパソコンからログインしようとすると

googlechromeで「このウェブページにはリダイレクト ループが含まれています」と表示されます。

WordPressをマルチサイトに対応させる場合の注意点

など検索結果の上位にくるいくつかは、「.htaccessの設定は、追加ではなくて上書き」で治ったと。

しかし、それは最初から上書きしてる。でも、「.htaccess」の問題なんだろうなぁ……。

ためしにもう一度、「ネットワークの設置」の「.htaccess」の記述を見ると微妙に違う。

そういえば、.htaccessを入れてから、サブドメインを使うかディレクトリを使うかの設定を変えてしまった気がする。

 

define(‘SUBDOMAIN_INSTALL’, true);(サブドメインを使用する)だったとき

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

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) test/wp/$1 [L]
RewriteRule ^(.*\.php)$ test/wp/$1 [L]
RewriteRule . index.php [L]

define(‘SUBDOMAIN_INSTALL’, false);(ディレクトリを使用する)のとき

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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).*) test/wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ test/wp/$2 [L]
RewriteRule . index.php [L]

で、再度やってみるけど同じ……。WP提供のソースのまま入れたけど、そこが間違ってるんだろう。

WordPress 3.5 をマルチサイト化したらループ地獄に陥ったので直す。

を参考にしました。

つまり、私の特殊な環境「test/wp」にサブドメインかぶせてテスト環境にして実行が、ネックになっていて、RewriteRuleの「test/wp」は本来はいらないということです。

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) test/wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ test/wp/$2 [L]

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

にして、解決。

3.アプリでログインしてみる

あとは、アプリでログインをためしてみるだけ。

ここで私が引っかかったのは、

サイト設定時の「インストール型Wordpressのアドレス」というところ。

ここに、管理画面のアドレス(http://example.com/wp-admin/)を入れてはいけません。

まんまURL(http://example.com/)を入れます。

また、マルチサイトの場合はマルチサイトのURL(http://ecample.com/a/ )を入れます。

これでOK。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です