重写规则不重定向重写

时间:2017-02-23 作者:Randomer11

我有以下自定义重写规则。

add_action( \'init\', \'corse_rewrite_rules\', 0 );
function corse_rewrite_rules( ) {

    add_rewrite_rule(\'listings/make/([^/]*)/page/?([0-9]{1,})/?$\', \'index.php?post_type=product&product_make_model=$matches[1]&paged=$matches[2]\', \'top\');

    add_rewrite_rule(\'listings/make/([^/]*)/?$\', \'index.php?post_type=product&product_make_model=$matches[1]\', \'top\');

}
应采用如下URL:

/product_make_model/stuff/
收件人:

/listings/make/stuff/
目前的问题是,尽管重写工作正常,并且可以访问新的URL,但它并没有将旧的URL重定向到新的URL。

如果我还添加了一个SEO插件,比如YOAST,那么规范的URL将作为旧URL列出,以确认有什么问题。

有人能解释一下我做错了什么吗?

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

Ok设法解决了这个问题,而不是添加重写操作。因为我想重写的是一个分类法,我应该使用这样的方法:

\'rewrite\' => array(\'slug\' => \'listings/make\', \'product_make_model\' => false)
注册分类法时,基本上会在创建/注册分类法时重写slug。

工作正常。

相关推荐

如何在我的根域上组合WordPress htaccess+在子文件夹上组合php

我为一个看似重复的问题道歉,但我所看到的几十个问题中,没有一个是同样的问题。我有以下目录结构:/.htaccess /index.php /subfolder/.htaccess /subfolder/index.php 我希望所有页面请求都由/index.php, 除非请求启动/subfolder 在这种情况下,应由/subfolder/index.php.e、 g。/abc 将重写为/subfolder/abce、 g。/subfolder/def 将重写为/subf