mod_rewrite:重写规则还是重定向?

Posted

技术标签:

【中文标题】mod_rewrite:重写规则还是重定向?【英文标题】:mod_rewrite: rewrite rule or redirect? 【发布时间】:2011-09-08 19:49:48 【问题描述】:

如果我使用内部重写规则来更改我的网页名称而不是重定向,我似乎会有重复的内容?例如,如果我将 /oldpage.html 重写为 /working-person.html,它会获得到 working-person.html 的内部重定向。这实际上有效。但是 oldpage.html 仍然是一个“直接”链接,并且不显示 301。

如果我在末尾添加 [R] 或 [R=301],服务器会抛出 500 错误: 重写规则 ^oldpage.html$ working-person.html [R=301]。

另一方面,重定向 301 /oldpage.html hXXp://www.example.com/working-person.html 有效。我应该只使用重定向吗?

我以为在使用其他指令时我在某处阅读过使用 rewriterule 而不是重定向。如果内容重复,为什么要使用内部重写?

感谢您的任何想法/意见。

【问题讨论】:

您应该使用相关技术标记此问题。标签有助于这个问题被能够回答的人注意到。 【参考方案1】:

这是个案。在您的情况下,您应该使用 HTTP 301 永久重定向以避免内容重复。我个人使用重写只是为了使链接用户和 SEO 友好。

【讨论】:

以上是关于mod_rewrite:重写规则还是重定向?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 apache mod_rewrite 规则重定向到动态 URL(不是经典重定向)?

重写规则不起作用 - 返回目录列表而不是重定向

htaccess mod_rewrite - 尾部斜线和重定向循环

htaccess 和 mod_rewrite 用于 IPN 重定向

Apache Mod_Rewrite 不断重定向

如何设置 .htaccess 和 mod_rewrite 以永久重定向到不包括根索引页面的新域?