【问题标题】:WordPress MultiSite Network Admin Redirect Loop After Adding www添加 www 后的 WordPress 多站点网络管理员重定向循环
【发布时间】:2014-09-28 13:25:37
【问题描述】:

在了解到如果 CDN 是自托管的,裸 WP 域将出现“无 cookie 子域”问题后,我需要/不得不将我的 MultiSite 上的根站点切换到 www。

我关注了this guide:

  1. 编辑 wp-config.php 并更改 从 定义(‘DOMAIN_CURRENT_SITE’,‘example.com’); 到 定义(‘DOMAIN_CURRENT_SITE’, ‘www.example.com’);

  2. 从https://github.com/interconnectit/Search-Replace-DB 获取搜索和替换脚本,并阅读网站上的使用说明。

除了访问网络管理员仪表板之外,一切都按预期工作。

所有站点的仪表板(使用子域,而不是文件夹)和永久链接结构在根站点 (www.example.com) 和子域站点(子域.example.com)。但是,当我尝试访问 Network Admin(即 http://www.example.com/wp-admin/network/)时,会出现 302 重定向循环。

同样,所有子域站点的仪表板都正常运行,但网络仪表板却不正常。

我在 Google 和 SO 上做了一些窥探,但没有任何效果(或适合这种情况)。我认为这可以在 .htacces 中解决,但我对此并不擅长,因此我们将不胜感激任何帮助或建议!

以下是我的配置:

.htaccess:

. . .
# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# Disable trace and track
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

# Forbid Proxy comment posting
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP:VIA}%{HTTP:FORWARDED}%{HTTP:USERAGENT_VIA}%{HTTP:X_FORWARDED_FOR}%{HTTP:PROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}%{HTTP:HTTP_PC_REMOTE_ADDR}%{HTTP:HTTP_CLIENT_IP} !^$
RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteRule .* - [F,NS,L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress
. . .

...在我的 config.php 中:

. . .
/* Multisite */
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'www.example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');
. . .

【问题讨论】:

  • 如果有人知道以下是一个坏主意,请随时评论原因。 Thnx! 我在 .../wp-admin/network/admin.php 中注释了第 18 行: $redirect_network_admin_request = 0 !== strcasecmp( $current_blog->domain, $current_site->domain ) || 0 !== strcasecmp($current_blog->path, $current_site->path);显然,每次更新我都需要这样做:P 但是直到有更好的解决方案......

标签: .htaccess redirect http-status-code-302 wordpress


【解决方案1】:

将以下代码添加到:

/wp-admin/network/admin.php

echo "current_blog domain: ".$current_blog->domain."<br>";
echo "current_site domain: ".$current_site->domain."<br>";
echo "current_blog path: ".$current_blog->path."<br>";
echo "current_site path: ".$current_site->path."<br>";
exit;

检查值是否相同,这可能是问题所在。 也许您需要删除“www”。在“DOMAIN_CURRENT_SITE”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多