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

PC版へ 2013年01月01日

たぶんこれはWordPressの所為ではなくて、ネットワークの設定あたりがおかしいような気もするのですが、とりあえずサーバの設定をいじるよりもWordPressのほうをいじったほうが早いので、そうする。

症状 …

さて。

リダイレクトがうまく行っていないっぽいので、その辺りの設定を見てみる。

ワードプレスでマルチサイト設定を有効にしたときに「これを .htaccess に書いてね」と言われる、素の内容はこんな感じ。

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

うん。

本当は http://ubuntu.local/wp/sub/wp-admin/ にアクセスした時は http://ubuntu.local/wp/wp-admin/ を見てほしいのだけれど、これだと /wp/sub/wp-admin/ -> /wp/wp/wp-admin/ -> /wp/wp/wp/wp-admin/ -> /wp/wp/wp/wp-admin/ … と無限にリダイレクトされてしまいそうです。

なので、 11,12行めを

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

としてやれば、たぶん無限ループを回避でき、無事にワードプレスを使うことが出来るようになると思うのだけれどどうだろう。うちはこの設定で、いまのところは特に問題はないのだけれど。

関連記事

コメント

sai

まさにこの問題にハマっていました。
解決することができました。

ありがとうございました!!