添加www后,WordPress MultiSite网络管理员重定向循环

时间:2014-08-05 18:59:53

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

在得知裸露的WP域将拥有无cookie子域'如果CDN是自托管的,我需要/必须将 MultiSite 上的根网站切换为www。

我跟着this guide跟着:

  1. 编辑wp-config.php并进行更改 从 define('DOMAIN_CURRENT_SITE','example.com'); 至 define('DOMAIN_CURRENT_SITE','www.example.com');

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

  3. 一切都按预期工作,但访问网络管理员信息中心。

    所有站点的仪表板(使用子域,而不是文件夹)和永久链接结构在根站点(www.example.com)和子域站点(子域)中正常运行example.com)的情况。但是,当我尝试访问网络管理员(即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', '');
    . . .
    

1 个答案:

答案 0 :(得分: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;

检查值是否相同,这可能是问题所在。 也许你需要删除&#34; www。&#34; at&#34; DOMAIN_CURRENT_SITE&#34;