WordPressのサブドメイン型マルチサイトで、物理フォルダアクセス時に500エラーがでる場合の対応

仕事でマルチサイトを扱うことはほとんどないのですが、個人的なサイトでWordpressを運用するときにはマルチサイト化することが多いです。

しかし、サブドメイン型のマルチサイトを設置し存在しないフォルダにあるindex.phpへアクセスしようとするとInternal server error 500が返ってきます。サーバーのエラーログを確認すると「Request exceeded the limit of 10 internal redirects due to probable configuration error」だと記録されていました。

検索しても同じような症状に関する記事が見つからなかったので、もしかしたら特定の条件下でのみ起こるのかもしれませんが、対応策を紹介します。

1.「.htaccess」の編集

マルチサイトを設置すると「ネットワークの設置」ページで.htaccessを書き換えなさいという指示がありますが、この記述に手を加えるとうまくいきました。

オリジナル

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).*) ドメイン名/$1 [L]
RewriteRule ^(.*\.php)$ ドメイン名/$1 [L]
RewriteRule . index.php [L]

編集後

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

8行目と9行目を書き換えています。

.htaccessの書き換えは自分にはだいぶリスキーなのですが、どうぞ自己責任で試してください(^_^;)

 

One thought on “WordPressのサブドメイン型マルチサイトで、物理フォルダアクセス時に500エラーがでる場合の対応”

Leave a Reply

Your email address will not be published. Required fields are marked *