11

我安装了一个新的 WordPress 4.1 多站点

我可以导航 Front 并访问主站点仪表板

http://blog.urlcorrect.com/wp-admin/

我创建了一个子站点,但我无法访问子站点仪表板

http://blog.urlcorrect.com/br/wp-admin/

我有这个错误:Código de error: ERR_TOO_MANY_REDIRECTS

--

我可以进入前线

http://blog.urlcorrect.com/br/

但没有样式,css url 不正确(找不到页面):

http://blog.urlcorrect.com/br/wp-content/themes/twentyfifteen/style.css?ver=4.1

--

我有这个价值观:

current blog domain: blog.urlcorrect.com
current site domain: blog.urlcorrect.com
current blog path: /
current site path: /

--

BBDD(wp_blogs 表)

blog_id: 1
site_id: 1
domain: blog.urlcorrect.com
path: /
public: 1

blog_id: 2
site_id: 1
domain: blog.urlcorrect.com
path: /br/
public: 1

--

htaccess:

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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

--

wp-config.php

/* Multisite */
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'blog.urlcorrect.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

--

我找不到正确的答案。我做错了什么?

非常感谢

巴勃罗

4

6 回答 6

15

(我不相信给定的解决方案);)

如果您对此仍有疑问,请尝试使用 .htaccess 的解决方案。

通过 WP Network 安装更改给定的 .htaccess 模板:

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).*) featured/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ featured/$2 [L]
RewriteRule . index.php [L]

对此:

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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

适用于我的与您类似的问题。

原始解决方案已在此处发布链接

于 2015-04-15T10:07:17.533 回答
2

如果您使用 Cloudflare,而不是将 SSL 模式从灵活更改为完整,如下所示:

在此处输入图像描述

这对我有用。

来源:https ://wordpress.org/support/topic/wp-multisite-too-many-redirects-on-wp-admin/

于 2020-06-26T06:50:53.357 回答
1

就我而言,我使用的是 Nginx,

这意味着 .htaccess 不起作用,因为它是 Apache。

如果您使用的是 Nginx,您可能需要阅读 WordPress Codex 的 Nginx 页面:https ://codex.wordpress.org/Nginx

我将在此处粘贴最重要的部分,以防 Codex 因任何原因下线:

WordPress 多站点子目录规则

# WordPress multisite subdirectory rules.
# Designed to be included in any server {} block.

map $uri $blogname{
    ~^(?P<blogpath>/[^/]+/)files/(.*)       $blogpath ;
}

map $blogname $blogid{
    default -999;

    #Ref: http://wordpress.org/extend/plugins/nginx-helper/
    #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;
}

server {
    server_name example.com ;

    root /var/www/example.com/htdocs;
    index index.php;

    location ~ ^(/[^/]+/)?files/(.+) {
        try_files /wp-content/blogs.dir/$blogid/files/$2 /wp-includes/ms-files.php?file=$2 ;
        access_log off;     log_not_found off; expires max;
    }

    #avoid php readfile()
    location ^~ /blogs.dir {
        internal;
        alias /var/www/example.com/htdocs/wp-content/blogs.dir ;
        access_log off;     log_not_found off; expires max;
    }

    if (!-e $request_filename) {
        # Don't use `$uri` here, see https://github.com/yandex/gixy/issues/77
        rewrite /wp-admin$ $scheme://$host$request_uri/ permanent;
        rewrite ^(/[^/]+)?(/wp-.*) $2 last;
        rewrite ^(/[^/]+)?(/.*\.php) $2 last;
    }

    location / {
        try_files $uri $uri/ /index.php?$args ;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass php;
    }

    #add some rules for static content expiry-headers here
}

WordPress 多站点子域规则

map $http_host $blogid {
    default       -999;

    #Ref: http://wordpress.org/extend/plugins/nginx-helper/
    #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;

}

server {
    server_name example.com *.example.com ;

    root /var/www/example.com/htdocs;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args ;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass php;
    }

    #WPMU Files
        location ~ ^/files/(.*)$ {
                try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?file=$1 ;
                access_log off; log_not_found off;      expires max;
        }

    #WPMU x-sendfile to avoid php readfile()
    location ^~ /blogs.dir {
        internal;
        alias /var/www/example.com/htdocs/wp-content/blogs.dir;
        access_log off;     log_not_found off;      expires max;
    }

    #add some rules for static content expiry-headers here
}

注意:WordPress 网络安装在创建网络时不再需要blogs.dir规则,但在迁移旧安装时可能仍然需要。

于 2018-12-10T01:39:53.650 回答
0

由于您有一个多站点 WordPress,您应该删除以下行:

define('DOMAIN_CURRENT_SITE', 'blog.urlcorrect.com');

define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

wp-config.php.

于 2015-06-05T13:11:58.653 回答
0

对我来说诀窍是检查数据库。

查找表格并使用和更改wp_optionsoption_name siteurlhomehttp://127.0.0.1/somethinghttp://localhost/something

希望有帮助!

于 2018-04-19T12:40:34.340 回答
0

就我而言,我也在使用 Nginx ......

我没有遵循 WordPress Codex 文档,而是遵循 CloudPanel 的。我的建议:不要包含“www”。当您为 WordPress 设置服务器时,它会让您的生活更轻松。如果添加“www.” 然后你必须创建一个基于子域的 WordPress 网络,你会得到导致“err_too_many_redirects”错误的循环。

如果为时已晚,对我来说诀窍是:

  1. 将数据库的所有链接(通过插件,或者更好的是,使用 phpMyadmin 中的 SQL)从“www.example.com”更改为“example.com”(包括站点 url)。
  2. 从服务器配置文件中删除(或注释,就像我在示例中所做的那样)这部分(它就在开头)。如果您使用 CloudPanel,您可以在 Domains/your domain/Vhost 中找到它:
#server {
#  listen 80;
#  listen [::]:80;
#  listen 443 ssl http2;
#  listen [::]:443 ssl http2;
#  {{ssl_certificate_key}}
#  {{ssl_certificate}}
#  server_name example.com;
#  return 301 https://www.example.com$request_uri;
#}

不用说,在应用这些更改之前备份数据库和您需要的任何东西。

于 2021-11-20T14:45:00.260 回答