301重定向未重定向到正确的URL,但不带斜杠

时间:2018-06-28 13:32:27

标签: .htaccess redirect http-status-code-301

我必须手动将我的website1中的几个URL重定向到website2。

下面是我在website1的.htaccess文件中的代码

Redirect 301 /post1/ https://www.website2.com/post1

当我在浏览器中输入https://www.website1.com/post1/时,它已按预期成功重定向到https://www.website2.com/post1

但是,当我在浏览器中输入https://www.website1.com/post1时,它被重定向到https://www.website2.compost1,在https://www.website2.com之后

该如何解决?

3 个答案:

答案 0 :(得分:5)

您可以使用RedirectMatch在单个规则中执行此操作,该规则使用正则表达式使尾部斜杠为可选,如下所示:

RedirectMatch 301 ^/(post1)/?$ https://www.website2.com/$1

增加的好处是通过在源中使用捕获组并在目标中使用向后引用post1来避免源和目标中$1的重复。

答案 1 :(得分:2)

从重定向中删除结尾的/

Redirect 301 /post1 https://www.website2.com/post1

此重定向然后适用于URL的两个版本。请参阅测试链接here

答案 2 :(得分:1)

按此特定顺序使用2个重定向URL可以解决该问题。

Redirect 301 /post1 https://www.website2.com/post1

Redirect 301 /post1/ https://www.website2.com/post1