如何修复多站点的仪表板子目录站点链接?

时间:2019-04-23 09:24:50

标签: php wordpress multisite

我们有一个多站点bitnami子目录安装。每个子目录都是特定于国家/地区的站点,因此根站点为https://example.com,子目录为https://example.com/[country code]http://[ip]上进行开发期间,没有任何问题。移到我们的域并为每个站点添加编辑器后,我们开始遇到一个非常具体的问题。

首先了解细节:

.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
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]
</IfModule>

# END WordPress

wp-config.php

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', '[redacted].com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

define( 'WP_HOME', 'https://[redacted].com' );
define( 'WP_SITEURL', 'https://[redacted].com' );
define( 'WP_2_HOME', 'https://[redacted].com/da' );
define( 'WP_2_SITEURL', 'https://[redacted].com/da' );
define( 'WP_3_HOME', 'https://[redacted].com/de' );
define( 'WP_3_SITEURL', 'https://[redacted].com/de' );
define( 'WP_4_HOME', 'https://[redacted].com/se' );
define( 'WP_4_SITEURL', 'https://[redacted].com/se' );

define('FS_METHOD', 'direct');


/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
define( 'SUNRISE', 'on' );
require_once(ABSPATH . 'wp-settings.php');

define('WP_TEMP_DIR', '/opt/bitnami/apps/wordpress/tmp');

问题

每时每刻,wp_[id]_options表中的option_values都会更改。例如。 select * from wp_2_options where option_name = 'siteurl'; option_value将更改为根url,而不是根url +子目录(即https://example.com/而非https://example.com/[subdirecotry])。结果是仪表板中的管理员链接排除了URL中的子目录。由于根目录中不存在帖子ID,因此可能会导致404错误,管理员只能通过在网址栏中手动输入子目录来访问特定于站点的仪表板,更改帖子(页面,博客帖子,模板等从根目录复制并共享一个帖子ID)保存到根目录而不是子目录等。

用户端没有中断。网站上的所有链接都可以。

每当遇到这种情况或有报告时,我们都必须手动将相应option_value表中的wp_[id]_options改回根url +子目录,并回滚到较早的修订版。至少可以说这很烦人。

首先,我们认为这是与域迁移相关的问题,但是直到开始添加管理员,编辑器,seo-manager等之后,我们才开始遇到此问题。然后,我们认为也许用户在不同站点上都具有角色,它们在通过身份验证时会中断,但是消除该变量并不能阻止问题再次发生。

1 个答案:

答案 0 :(得分:0)

使用名为Duplicator

的插件

或者您必须更新数据库上的site_url链接,然后导航到WP Settins->“永久链接”,然后单击“更新”以重写htaccess文件。