我一直在寻找关于为什么建议使用子域进行多站点安装的详细信息。实际上,我怀疑这两者是否都与子域安装相关:
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\\.php)$ $1 [L]
在子目录安装中,设置的规则略有不同,可以从请求中删除子目录名称,如下所示:
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
我在错误日志中看到一个重定向循环,这是由这些规则的第一个版本引起的,因为替换文本与原始文本相同。我发现一些证据表明,mod\\u rewrite的某些版本会检测到原始文本和新文本是相同的,并跳过结果的重新插入。(不知道我现在读了多少链接中的哪一个。)
我认为将URI重写为与原始URI相同,从而将链接重新插入重写引擎没有任何价值。删除规则后,我得到的是预期的404页,而不是重定向循环,当超过重定向限制时,重定向循环将以500服务器错误结束。
另请注意,我认为建议的子目录版本也已损坏。因为它使用?
对于子目录部分,它将在输入URL上循环,如no-such-file.php
. 子目录部分上的匹配不应允许零拷贝,因此规则可能是:
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\\.php)$ $1 [L]
类似的结论如下:
https://wordpress.stackexchange.com/a/73185/27576