你好高级WP'ers,
我有一个 WordPress 多站点网络,它不会脱离域的根目录,而是使用目录“/clubs/”的基于路径的安装(不是子域)。
示例站点 URL 可能是;www.teamwebsites.co.uk/clubs/sitename
我正在使用处理域映射的 WPultimo 插件(一个很好的插件)。但是,当正确映射域时,唯一出现的页面(具有标准 .htaccess 且重写基础设置为“/clubs/”)是主页 - 所有其他页面出现 500 Internal Server 错误。我的主机是 Dreamhost。
因此,我试图确保每个站点的映射域(如果适用)和标准 WP 子站点 URL 都正确显示,并且映射域版本上的所有页面和帖子都不会显示 500 错误。我已经咨询了 wpultimo 的插件作者,但他已经用尽了他在这个主题上的所有知识,因为他更像是一个设计而不是服务器向导。
以下是我目前的 .htaccess 文件。请注意,映射的域工作得很好,但标准的 WP 子站点 URL 不能——例如 www.teamwebsites.co.uk/clubs/prdc,由于 htaccess,实际站点甚至不显示。
==> https://pastebin.com/raw/wYzEJ9kF <==
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#RewriteCond %{HTTP_HOST} =teamwebsites.co.uk
#RewriteRule ^([_0-9a-zA-Z-]+/)+(wp-(content|admin|includes).*) clubs/$2 [L]
# RewriteBase equivalent - for tree.mydom.us/twig/
RewriteCond %{HTTP_HOST} ===teamwebsites.co.uk
RewriteRule . - [E=REWRITEBASE:/clubs/]
RewriteCond %{HTTP_HOST} !=teamwebsites.co.uk
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ %{ENV:REWRITEBASE}$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).*) %{ENV:REWRITEBASE}$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ %{ENV:REWRITEBASE}$2 [L]
RewriteRule . %{ENV:REWRITEBASE}index.php [L]
</IfModule>
# END WordPress
注意:我仍然必须将 /clubs/ 用作多站点目录。
我认为来自服务器的混淆是映射域不包括“/clubs/”作为映射域本身和后面的帖子/页面 URL 之间的后缀。
请,如果有人对此有解决方案,我将不胜感激。经过 3/4 小时的凝视并尝试 - 与插件作者一起 - 更改 .htaccess 的代码,它变得如此乏味!