当url具有相同的基础时如何编写301重定向规则

Posted

技术标签:

【中文标题】当url具有相同的基础时如何编写301重定向规则【英文标题】:how to write 301 redirect rule when urls have the same base 【发布时间】:2021-05-16 01:14:35 【问题描述】:

我在 ht 访问中编写 301 重定向规则时遇到了麻烦。我找不到正确的语法。

我的问题是两条规则

Redirect 301 /lessons/                  https://example.com/lessons/piano/
Redirect 301 /lessons/classical/violin/  https://example.com/lessons/vilolin/

他们将所有重定向到

https://example.com/lessons/piano/

我猜这是因为 url 的第一部分是相同的,正确的语法是什么? 提前非常感谢。

【问题讨论】:

感谢您分享您的努力,您能否让我们更清楚地知道您想从哪个网址重定向到哪个网址?并且在重定向后应该在后端提供哪个文件? 【参考方案1】:

在这种情况下尝试使用RedirectMatch 而不是Redirect 来使用正则表达式来匹配URL。请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RedirectMatch 301 /lessons/?$            https://example.com/lessons/piano/
RedirectMatch 301 /lessons/classical/violin/?$  https://example.com/lessons/vilolin/

【讨论】:

以上是关于当url具有相同的基础时如何编写301重定向规则的主要内容,如果未能解决你的问题,请参考以下文章

使用哈希部分(锚)重定向 301 #

如何使用动态 URL 进行 301 重定向并为新 URL 保留一些价值

301 使用 IIS 重定向到具有命名锚点的 URL

当 url 没有斜杠时,AWS s3 强制 302 重定向 - 需要 301s

为 301 重定向配置 Amazon 重定向规则

Django 测试客户端在访问 url 时得到 301 重定向