使用.htacess-wordpress将一个类别重定向到另一个类别

使用.htacess-wordpress将一个类别重定向到另一个类别,wordpress,.htaccess,mod-rewrite,redirect,Wordpress,.htaccess,Mod Rewrite,Redirect,我正在尝试301重定向wordpress中的一个类别到另一个类别,因为某些原因wordpress没有自动执行,所以这就是我目前拥有的 RewriteRule ^category/?(.*)$ /free/$1 [R=301,L] 我试过了,但运气不好,知道为什么吗?我已经找了4个小时的解决方案,但我就是想不出来 看来我7个小时的战斗已经结束了(有点遗憾,我花了那么长时间)这就是成功的原因 解决方案: RedirectMatch 301 /category/(.*) /free/$1 首先,您

我正在尝试301重定向wordpress中的一个类别到另一个类别,因为某些原因wordpress没有自动执行,所以这就是我目前拥有的

RewriteRule ^category/?(.*)$ /free/$1 [R=301,L]
我试过了,但运气不好,知道为什么吗?我已经找了4个小时的解决方案,但我就是想不出来

看来我7个小时的战斗已经结束了(有点遗憾,我花了那么长时间)这就是成功的原因

解决方案:

RedirectMatch 301 /category/(.*) /free/$1

首先,您的正则表达式是不正确的,因为它也将与ex的
/category animal
匹配。这是因为在它后面使用了
/?
。正确的规则应该这样写:

RewriteRule ^category(/.*|)$ /free/$1 [R=301,L,NC]

此外,由于WP将所有URI转发到其
索引.php
,因此将此规则作为第一条规则放置在
重写引擎下方的
行或
重写基
行非常重要。

使用重定向匹配规则工作

RedirectMatch 301 /category/(.*) /free/$1

旁注:不要使用
[R=301]
测试外部重定向。这是一个永久重定向,大多数浏览器都会缓存它。如果您在规则中出错,浏览器将缓存您的错误,然后浏览器将跳过您尝试重定向的页面,而不是转到您以前重定向到的页面。因此,请使用
[R]
(临时重定向),直到所有规则都执行了您希望它们执行的操作。谢谢您的提示,但我一直在使用标题检查器、不同的浏览器等,还是不走运?重接线盒不需要条件,对吗?或者我的格式有问题吗?据我所知,Wordpress使用软件重定向,这可能会干扰您的规则。由于我对Wordpress的内部结构一无所知,我真的不知道你需要改变什么。不过可能有一些问题。感谢您关注这个问题,我找到了解决方案并更新了帖子。我现在终于可以睡觉了。很好,它正在工作,但通常混合使用
mod_rewrite
mod_alias
(由RedirectMatch使用)不是一个好主意。WP已经使用了
mod_rewrite
进行内部重写。我试过了,似乎不起作用,无论如何我找到了一种使用RedirectMatch 301/category/(.*)/free/$1的方法。谢谢你的回复。