从您发布的内容来看,不清楚您为什么会得到重定向循环。我们需要看看其他的.htaccess
文件然而
您可能与现有mod\\u重写(即。RewriteRule
) 指令。Redirect
是mod\\u alias指令。
毫无疑问,WordPress前端控制器存在mod\\u rewrite指令。您还有其他重定向。您应该避免混合来自两个模块的重定向,因为它们可能不会按照您期望的顺序执行(mod\\u rewrite总是在mod\\u alias之前运行,尽管配置文件中的顺序很明显)。
我知道有一个标志可以使规则成为“最终的”,但是。。。
该“标志”适用于mod\\u重写RewriteRule
, 不Redirect
(mod\\u别名)。通过将该标志添加到Redirect
在这种情况下,它将被忽略。
您应该更改这些mod\\u别名Redirect
mod\\u重写指令RewriteRule
并将其包括在内at the very top of your file.
例如:
RewriteRule ^(category)/cat-a/subcat-a/subsubcat-a/(.*) /$1/newcat-a/newsubcat-a/$2 [R=302,L]
RewriteRule ^(category)/cat-b/subcat-b/(.*) /$1/newcat-b/mynewsubcat-b/$2 [R=302,L]
这假设类别之后的所有内容都复制到目标URL的末尾。例如:。
.../subsubcat-a/foo/bar
成为
.../newsubcat-a/foo/bar
. (这是你原来的
Redirect
指令可以完成。)
$1
是对“类别”的反向引用(仅保存重复),并且$2
是类别字符串之后的所有内容。
这个L
(last
) 此处需要标记。
使用302进行测试,只有在确定其正常工作时才更改为301,以避免缓存问题。
测试之前,您需要清除浏览器缓存。