【问题标题】:Redirecting one category to another using .htacess - wordpress使用 .htaccess - wordpress 将一个类别重定向到另一个类别
【发布时间】:2013-10-05 04:22:08
【问题描述】:

我正在尝试 301 将一个类别重定向到 wordpress 中的另一个类别,由于某种原因 wordpress 不会自动执行此操作,所以这就是我目前所拥有的。

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

我试过这个没有希望,任何想法为什么?一直在寻找 4 小时的解决方案,我就是想不通。

看起来我的 7 小时战斗已经结束(有点难过,我花了这么长时间)这是有效的

解决方案:

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

【问题讨论】:

  • 旁注:不要使用[R=301] 测试外部重定向。这是一个永久重定向,大多数浏览器都会缓存它。如果您在规则中犯了错误,浏览器将缓存您的错误,然后浏览器将跳过您尝试重定向的页面,而不是转到您之前将其重定向到的页面。因此,请使用[R](临时重定向),直到所有规则都按照您的意愿行事。
  • 感谢您的提示,但我一直在使用标题检查器,不同的浏览器等仍然没有运气? rewiterules 不需要条件,对吗?还是我的格式有问题?
  • 据我了解,Wordpress 使用软件重定向,这可能会干扰您的规则。由于我对 Wordpress 的内部结构一无所知,因此我无法确定您必须更改什么。不过,between these questions 可能有一些东西。
  • 感谢您查看问题,我找到了解决方案并更新了帖子。我现在终于可以睡觉了。
  • 很好,它正在工作,但通常混合使用 mod_rewritemod_alias(由 RedirectMatch 使用)并不是一个好主意。 WP 已经使用mod_rewrite 进行内部重写。

标签: wordpress .htaccess mod-rewrite redirect


【解决方案1】:

第一件事是您的正则表达式不正确,因为它也将匹配 /category-animal 也用于 ex。由于在它之后使用了/?。正确的规则应该这样写:

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

此外,由于 WP 将所有 URI 转发到其index.php,因此将此规则作为第一条规则放在RewriteEngine On 行或RewriteBase 行的正下方很重要。

【讨论】:

  • 我试过了,好像没用,反正我找到了使用 RedirectMatch 301 /category/(.*) /free/$1 的方法。感谢您的回复。
【解决方案2】:

使用 redirectMatch 规则工作

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

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2012-02-14
    • 1970-01-01
    • 2013-08-04
    相关资源
    最近更新 更多