【问题标题】:Redirect 301 partially working重定向 301 部分工作
【发布时间】:2014-05-08 18:58:32
【问题描述】:

我最近刚开始在 Wordpress 网站上使用 Redirect 301。我所有的重定向都运行良好,直到我到达一个部分,在该部分中,我将一个父级移到另一个父级之下,所有的孩子都跟着。当我为父级设置重定向 301 时,它可以工作,但它下面的所有那些都存在问题。我的所有其他重定向都有效,只有新的有问题,我将把这些与下面的一些旧的一起包括在内。

我从绝对链接中省略了 http:// 网站名称,因为我只能发布 2 个链接。

工作:

redirect 301 /category/best-cd-rates/keybank-cd /keybank/reviews/cd/
redirect 301 /category/best-cd-rates/metlife-cds-best-cd-rates /metlife/reviews/cd/
redirect 301 /the-pinnacle-of-bank-rates /golf-savings-bank/reviews/cd/

不工作:

redirect 301 /bank-ratings/ally-bank-rating/cd-account/ /ally-bank/ratings/cd/
redirect 301 /bank-ratings/amegy-bank-ratings/amegy-bank-customer-service-ratings /amegy-bank/ratings/customer-service/

唯一不工作的部分是相对链接的最后部分不会更改为绝对路径的最后部分。

意思是 url 应该是这样的:

/amegy-bank/ratings/customer-service/

但实际上看起来像:

/amegy-bank/ratings/amegy-bank-customer-service-ratings/

我确保将要重定向到的网站的 url 编辑到我想要的正确 url。

如果有人有更好的方法来描述我的问题,这也会有所帮助,因为我一直在拼命寻找问题的确切名称。

提前致谢

.htaccess 文件的一部分

<IfModule mod_rewrite.c>
RedirectMatch 301 go up here
RewriteEngine On

完整的答案在答案和cmets下面,基本上我只需要在正确的地方使用Redirectmatch 301。

【问题讨论】:

  • 你能在你的问题中显示你完整的 .htaccess 吗?
  • 不确定它是否相关,因为其他人工作得很好,因为我不得不为我在网站中移动的每个页面做一个重定向,所以这很让人窒息。包括一切不是重定向 301 帮助吗?

标签: wordpress .htaccess redirect


【解决方案1】:

您需要使用RedirectMatch 来确保您不匹配不需要的 URI:

RedirectMatch 301 ^/bank-ratings/ally-bank-rating/cd-account/$ /ally-bank/ratings/cd/
RedirectMatch 301 ^/bank-ratings/amegy-bank-ratings/amegy-bank-customer-service-ratings$ /amegy-bank/ratings/customer-service/
  • 确保在新浏览器中测试它以避免 301 缓存问题。
  • RedirectMatch 301 规则必须出现在RewriteEngine On 之前

【讨论】:

  • 我只是去尝试了这个,它没有解决问题。我确保尝试不同的浏览器并多次清除缓存。
  • 您需要对所有 301 重定向使用类似的规则,并将它们放在其他 WP 规则之前。我无法进一步猜测,因为我不知道您的 .htaccess 是什么样子。
  • 刚刚添加了 .htaccess,其中大部分被省略的只是数百个重定向。我将 RedirectMatch 301 改回来只是为了保持一致性。
  • 好的,你需要移动所有RedirectMatch 301规则之前 RewriteEngine On
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 2013-02-06
  • 2023-03-13
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
相关资源
最近更新 更多