如何在WordPress多站点中调整页面链接

时间:2020-05-10 作者:Pep

我有一个Wordpress多站点配置,如下所示:

  • www.domain.com/ -> 主要站点(未使用)www.domain.com/de-de/ -> 德国网站www.domain.com/en-us/ -> 英文站点
但是,由于与Wordpress无关的原因,我需要网络站点具有以下布局:

  • www.domain.com/de-de/blog/ -> 德国网站www.domain.com/en-us/blog/ -> 英文站点
很遗憾,您不能将站点定义为de-de/blog 因为网站名称不允许使用正斜杠字符。

因此,我尝试在Apache上定义这样的反向代理:

ProxyPreserveHost On
ProxyPass        "/de-de/blog/" "http://127.0.0.1/de-de/"
ProxyPassReverse "/de-de/blog/" "http://127.0.0.1/de-de/"
ProxyPass        "/en-us/blog/" "http://127.0.0.1/en-us/"
ProxyPassReverse "/en-us/blog/" "http://127.0.0.1/en-us/"
这似乎可以实现站点路由的技巧,但在返回的页面中,HTML页面中的内部URL是www.domain.com/de-de/, 不www.domain.com/de-de/blog/

如何让WP在多站点模式下使用上游URL布局(即。www.domain.com/de-de/blog/) 在呈现的HTML页面中?

1 个回复
SO网友:Pep

我修改了网站的URL以包含/blog/ 后缀不能使用斜杠创建网站,但可以在创建网站URL后更改网站URL。

然后在中更改重写规则。htaccess访问:

RewriteRule ^([_0-9a-zA-Z-]+/blog/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteRule ^([_0-9a-zA-Z-]+/blog/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/blog/)?(.*\\.php)$ $2 [L]
最后,将一些代码添加到wp-config.php 要正确定义PATH_CURRENT_SITEBLOG_ID_CURRENT_SITE 变量:

define(\'PATH_CURRENT_SITE\', $path_current_site);
define(\'BLOG_ID_CURRENT_SITE\', $blog_id_current_site);