.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 设置帮助问题请的主要内容,如果未能解决你的问题,请参考以下文章