.htaccess 重定向 301 设置帮助问题请

Posted

技术标签:

【中文标题】.htaccess 重定向 301 设置帮助问题请【英文标题】:.htaccess redirect 301 setup help question please 【发布时间】:2021-11-08 20:07:32 【问题描述】:

我在设置 .htaccess 重定向 301 时遇到问题。

假设我有一个示例网站:example.ca

我以前有以下网址:example.ca/old

但现在我想将其重定向到新的 url,即example.ca/new

我删除了example.ca/old 的网址,所以如果有人试图访问该网址,他们将收到 404 错误。

如何将 example.ca/old 的“已删除 url”重定向到 example.ca/new?

我尝试了以下.htaccess 设置,但没有成功:

Redirect 301 /old example.ca/new

谁能指出我做错了什么?

【问题讨论】:

你对我的回答感觉如何?如果这回答了您的问题,那么请将其标记为“已接受”(在投票箭头下方左侧打勾/复选标记)以将其从未回答的问题队列中删除并帮助其他读者。一旦您拥有 15 次以上的代表,您还可以对您认为有用的答案进行投票。谢谢,非常感谢。 :) 【参考方案1】:
Redirect 301 /old example.ca/new

由于目标 URL 上缺少斜杠前缀(或方案 + 主机名),这将导致内部服务器错误(500 响应)。

但是,如果您要重定向到同一个域(如您的示例中所示),则无需在目标 URL 中明确包含主机名。因此,以下内容就足够了:

Redirect 301 /old /new

首先使用 302(临时)重定向进行测试以避免潜在的缓存问题。

请注意,如果您的 .htaccess 文件中有其他指令,那么顺序很重要(重定向通常需要靠近顶部),如果您有现有的 mod_rewrite 指令,那么您可能会选择使用 mod_rewrite。例如:

RewriteRule ^old$ /new [R=301,L]

请注意,RewriteRule 指令的第一个参数(即^old$)是一个正则表达式,并且与之匹配的 URL 路径不以斜杠开头。

【讨论】:

@DanielChung 不客气。如果这回答了您的问题,那么请将其标记为“已接受”(在投票箭头下方左侧打勾/复选标记)以将其从未回答的问题队列中删除并帮助其他读者。一旦您拥有 15 次以上的代表,您还可以对您认为有用的答案进行投票。谢谢,非常感谢。 :)

以上是关于.htaccess 重定向 301 设置帮助问题请的主要内容,如果未能解决你的问题,请参考以下文章

具有排除条件的 301 重定向 (htaccess)

如何创建 301 错误?

两个版本的.htaccess 301重定向

301 重定向.htaccess

301 使用 .htaccess 重定向 URL 模式

.htaccess 中的 301 重定向