多站点网络管理-URL/重定向错误

时间:2014-10-11 作者:Sven

我跟着this 关于如何设置针对git部署进行优化的WordPress安装的指南。

基本上,WordPress被移动到一个名为wordpress, index.phpwp-config.php 从子文件夹中移出,以及wp-content.
要实现这一点,需要wp-blog-header.php 以及到的路径wp-content.

我在单站点安装时没有遇到任何问题,但由于我经常需要处理多个站点,所以我尝试创建一个。

除了警告之外Warning! Subdirectory networks may not be fully compatible with custom wp-content directories. 一切正常,但有一个问题:

I can\'t access the network admin screens.

网站管理员URL如下所示:http://local.dev/wordpress/wp-admin/, 但指向网络管理员的链接如下所示:http://wp1.dev/wp-admin/network/sites.php.<如你所见/wordpress/ 缺少。如果手动加载,网络管理屏幕将按预期加载。

我的.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).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]
# END WordPress
以及我的wp-config.php 如下所示:

define( \'WP_ALLOW_MULTISITE\', true );

define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', false);
define(\'DOMAIN_CURRENT_SITE\', \'local.dev\');
define(\'PATH_CURRENT_SITE\', \'/\');
define(\'SITE_ID_CURRENT_SITE\', 1);
define(\'BLOG_ID_CURRENT_SITE\', 1);
我已经试着改变了PATH_CURRENT_SITE 从…起//wordpress/.
这修复了url,但由于重定向太多,网络管理屏幕无法加载,因此问题似乎出在我的.htaccess.

我已经试过了here), 但这并不能解决问题–同样的错误仍然存在:

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
WordPress版本为4.0,网络也在此版本启动。

你看到这个设置有什么问题吗?如何修复“重定向过多”错误?

编辑:我进一步调查了这个问题。我试着在一个站点上进行同样的安装,但它没有出现任何问题。我猜我引用的警告信息是有原因的。尽管如此,我还是很想知道是否有一个解决方案。还有,我现在很确定PATH_CURRENT_SITE 必须是/, 这意味着这显然是.htaccess 问题

2 个回复
SO网友:KiKiKi

network admin_url 筛选器可以重写网络管理员url<但我不知道这是不是最好的方法。

// wp-config.php
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . \'wp-settings.php\');

// add code //
define(\'__WORDPRESS_CORE_DIR__\', \'/wordpress\');

add_filter(\'network_admin_url\', \'rewrite_my_network_admin_url\', 10, 2);
function rewrite_my_network_admin_url($url, $path) {
  $networkPath = str_replace( \'/wp-admin/\', __WORDPRESS_CORE_DIR__ . \'/wp-admin/\', $url );
  return $networkPath;
}
http://chaika.hatenablog.com/entry/2018/02/03/090000 (日语)

SO网友:Nouniz

您必须像这样定义当前站点的路径:

define(\'PATH_CURRENT_SITE\', \'/wordpress/\');

结束

相关推荐

管理员用户被重定向至/wp-admin/user

我最近在我的多网络wordpress安装中添加了一个网络(也就是说,一个安装有多个子域网络,每个子域网络有多个子目录站点)。虽然从前端和网络管理视图来看,新站点上的一切都正常,但我添加到该站点的任何用户都会自动重定向到/wp-admin/user 登录时。这只显示WordPress新闻小部件和配置文件菜单。如果我手动导航回/wp-admin, 完整的仪表板可用,但重定向非常不方便,难以诊断。一些独特且可能相关的细节:创建新子域时,我首先在现有网络上创建了一个博客,然后手动进入并修改wp_sites 和wp