在不同子目录中的两个WordPress Multisite安装

Fla*_*Moe 5 wordpress .htaccess url-rewriting multisite

我在这里安装了WordPress Multisite:mydomain.com,我使用它来使用不同的语言,例如:

 mydomain.com/fr
 mydomain.com/de
 ...
Run Code Online (Sandbox Code Playgroud)

现在我们正在改变设计,但是我们想一步一步地,逐语言地做。

因此,我们在/ new文件夹中安装了另一个Wordpress Multisite,它可以与以下站点完美协作

 mydomain.com/new/fr
 mydomain.com/new/de
 ...
Run Code Online (Sandbox Code Playgroud)

我们想将JUST THE FRENCH语言重定向到新的wordpress。我已经尝试在根文件夹中使用此.htaccess(基于Wordpress文档中的信息:

RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteCond %{REQUEST_URI} !^/fr/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^fr(.*)$ /new/fr/$1
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule ^fr(/)?$ /new/fr/index.php [L] 
Run Code Online (Sandbox Code Playgroud)

但这给出了“建立数据库连接时出错”。这很奇怪,因为正如我所解释的,网站mydomain.com/new/fr运作良好。

注意:我们不想使用子域,我知道这会带来不同的方法和解决方案;-)

编辑:错误是因为此查询

SELECT  blog_id FROM wp_blogs  WHERE domain IN ( 'mydomain.com' ) AND path IN ( '/fr/', '/' )  ORDER BY CHAR_LENGTH(path) DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

我猜想,重定向工作正常,但是当“ new”目录中的wordpress试图确定要访问的博客时,它会读取URL并实际上位于“ /”中,因为重定向规则具有[L]并保持apache环境变量中的原始URL。

小智 3

如果您在 WordPress 3.5 或更高版本上激活了多站点,则可以按照参考资料部分中的文档设置进行操作.htaccess and Mod Rewrite

根据文档:

.htaccess 和 Mod 重写 与单站点 WordPress 不同,单站点 WordPress 可以使用“丑陋”的永久链接,因此不需要 Mod 重写,而 MultiSite 需要使用它来格式化子站点的 URL。这需要使用 .htaccess 文件,如果您使用子文件夹或子域,其格式会略有不同。以下示例是当 WordPress 安装在网站的根文件夹中时 WordPress 子文件夹和子域的标准 .htaccess 条目。如果您的 WordPress 位于其自己的文件夹中,则需要适当更改 RewriteBase 的值。