在多站点上添加_重写_规则不起作用

时间:2014-09-20 作者:Xaver

我在初始化挂钩上定义了一个重写规则,如:

add_rewrite_rule( \'foobar/(abc|def|ghi)/(.+)(/(\\d.+))\', \'index.php?my_action=$matches[1]&my_name=$matches[2]&my_version=$matches[4]\', \'top\');
这可以在单个WP安装上使用以下URL:

http://example.com/foobar/def/whatever/1.2
但是,它不在多站点安装上。

信息技术seems there\'s problem 多站点上的重写规则有问题#19896 描述了“非WP规则”的类似问题

我不知道我应该给.htaccess 文件,我更喜欢“适当”的解决方案。

EDIT:

我忘记了一些重要的事情:

我正在使用WordPress MU Domain Mapping 在网络打开时使用不同的域network.example.com 我使用的网站add_rewrite_rule 是sub.example。com公司

1 个回复
最合适的回答,由SO网友:Xaver 整理而成

看来问题不在于add_rewrite_rule 而是与.htaccess多站点的文件。

其中一个测试地址是

http://example.com/foobar/def/whatever.php
这是导致结果的htaccess的一部分(第2行)

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
RewriteRule . index.php [L]
如果我把这行注释掉,它会像预期的那样工作,但它可能会破坏其他东西。所以你必须添加自己的规则above 最新块:

RewriteRule ^([_0-9a-zA-Z-]+/)?foobar/(abc|def|ghi)/(.+)(/(\\d.+))$ index.php?my_action=$2&my_name=$3&my_version=$5 [R=301,L]

结束

相关推荐

更改WordPress MultiSite中每个单独站点的语言

我目前有一个多站点设置,我目前有两个站点,一个是英语(默认),另一个是法语。因为我不能有单独的配置文件和单独的语言文件夹,所以我需要能够让每个语言站点使用各自的配置文件和语言文件夹。前端用户的po文件。对于这两个站点,后端的英语都可以。我该怎么做?我在设置中没有看到语言的选择。有插件吗?我可以添加一行简单的代码吗?请帮帮我!谢谢