我在Web服务器的子目录中安装了Wordpress MU。当我将虚拟主机指向该目录时,我得到了索引页,但没有样式或对任何页面的访问权限。这就像它无法访问我的WP根目录的子目录中的任何内容,我得到了500个错误。当我查看Apache日志时,它说,
“由于可能的配置错误,请求超过了10个内部重定向的限制。如有必要,请使用‘LimitInternalRecursion’增加限制。使用‘LogLevel debug’获取回溯。”
根据我所做的研究,它指出了一个htaccess问题。但是,当我删除虚拟主机时,一切正常。我不知道我还需要尝试什么。我使用的是交钥匙Linux。有什么建议吗?
这是我的配置,
RewriteEngine On
RewriteBase /examples/
RewriteRule ^index\\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\\.php)$ $1 [L]
RewriteRule . index.php [L]
我想我已经把范围缩小到了RewriteBase。但仍然没有解决方案。
更新:越来越近。我尝试将上一条重写规则更改为,
RewriteRule ^(.+)$ /index.php/$1 [L,QSA]
现在我不再收到500错误,但我的主站点的CSS不起作用,还有一些图像链接。第二个站点除了一些断开的链接之类的东西外,大部分都能正常工作。
SO网友:Chad Killingsworth
我在WordPress多站点安装中找到了这个问题。重定向限制是由默认的Word Press重写规则触发的。
原始(错误)规则
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
对wp content、wp admin或wp includes文件夹中不存在的文件的请求出现问题。规则的第一部分没有触发正常的404响应,而是匹配url,无论它是否是子网站链接,从而无限循环。
固定规则
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\\.php)$ $1 [L]
查看最新的Word Press源代码可以发现,这一点已经得到纠正。它只影响较旧的多站点安装。重写规则必须手动更新。