状況は次のとおりです。
構成
異なるサイトが異なるドメインにある WordPress マルチサイト設定があります。これらのサイトには、ドメインのサブフォルダーに含まれているものと含まれていないものがあります。それらがサブフォルダーにあるサイトの場合、サブフォルダー名はすべてのサイトで同じです。
以下に例を示します。
Site | URL
-----------------------
Main site | example.com
Site A | sitea.com
Site B | siteb.com/foo
Site C | sitec.com/foo
Site D | sited.com
ここに私の wp-config.php の関連部分があります:
/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
これが私の.htaccessです:
# BEGIN WordPress
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
問題
この構成では、メイン サイトとサイト A & D は機能しますが、サイト B & C では 500 エラーが発生します。サイト B と C は動作しますが、メイン サイト、サイト A とサイト D では 500 エラーが発生しますRewriteBase /
。RewriteBase /foo/
RewriteBase /foo/
で始まるURIのドメインにのみ条件付きでの効果を適用すれば/foo
、問題は解決すると思います。残念ながら、WordPress と .htaccess がこれを行うのに十分な相互作用をする方法を理解していません。
誰か提案はありますか?
ありがとうございました。