3.5.1ja のマルチサイト設定 -> サブディレクトリ編

Posted by muchag | WordPress | 2013-04-21 (日) 18:56:42

WordPress 3.1系では、うまくいったマルチサイト化
3.5.1ja を入れようとしたらリダイレクト設定ではまったのでメモ。

【環境】
[WordPress]
3.5.1ja
症状

親サイトは問題が出なかったものの、子サイトのダッシュボードにアクセスしようとすると
Firefox, Chrome 共に、リダイレクトのループが起きている
という問題に陥った。
 

原因(予想)

サイト内でサブドメインを利用していたことのようだった。
(当たり前っちゃ当たり前か・・・反省)

マルチサイト設定を行った際に、WordPress から提示される .htaccess の内容について
WordPress は偉いので、さくらレンタルサーバの私のルートディレクトリ
www/
に配置すべき .htaccess の内容を記述してくれていたが
今回のインストール先は
www/hoge/wordpress/
であり、そちらにサブドメインを指定していたので
アクセスする際には、サブドメインのルートディレクトリが基準になる。
 

解決方法

というわけで、WordPress が提示してくれた

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^index\.php$ - [L]
  4.  
  5. # add a trailing slash to /wp-admin
  6. RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  7.  
  8. RewriteCond %{REQUEST_FILENAME} -f [OR]
  9. RewriteCond %{REQUEST_FILENAME} -d
  10. RewriteRule ^ - [L]
  11. RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) hoge/wordpress/$2 [L]
  12. RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ hoge/wordpress/$2 [L]
  13. RewriteRule . index.php [L]

 
のうち、11,12行目を変更し
 

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

 
とすることで、リダイレクトのループエラーを回避することができた。
 

参考元サイト

WordPress 日本語 フォーラム:[解決済み] WordPress3.5のマルチサイトで子サイトのダッシュボードにアクセスできない
freefielder.jp:WordPress 3.5 をマルチサイト化したらループ地獄に陥ったので直す。

WordPress | 2013-04-21 (日) 18:56:42 |