301 重定向不重定向到右边 URL 没有尾部斜线
301 redirection not redirecting to the right URL without a trailing slash
我必须手动将网站 1 中的几个 URL 重定向到网站 2。
下面是我在 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
之后缺少斜线
如何解决这个问题?
从重定向中删除尾随 /
。
Redirect 301 /post1 https://www.website2.com/post1
此重定向适用于 URL 的两个版本。见测试 link here.
按此特定顺序使用 2 个重定向 URL 解决了这个问题。
Redirect 301 /post1 https://www.website2.com/post1
Redirect 301 /post1/ https://www.website2.com/post1
您可以使用 RedirectMatch
在单个规则中执行此操作,该规则使用正则表达式使尾部斜线可选,如下所示:
RedirectMatch 301 ^/(post1)/?$ https://www.website2.com/
增加的好处 通过在源中使用捕获组并在目标中使用反向引用 </code> 来避免在源和目标中重复 <code>post1
。
我必须手动将网站 1 中的几个 URL 重定向到网站 2。
下面是我在 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
如何解决这个问题?
从重定向中删除尾随 /
。
Redirect 301 /post1 https://www.website2.com/post1
此重定向适用于 URL 的两个版本。见测试 link here.
按此特定顺序使用 2 个重定向 URL 解决了这个问题。
Redirect 301 /post1 https://www.website2.com/post1
Redirect 301 /post1/ https://www.website2.com/post1
您可以使用 RedirectMatch
在单个规则中执行此操作,该规则使用正则表达式使尾部斜线可选,如下所示:
RedirectMatch 301 ^/(post1)/?$ https://www.website2.com/
增加的好处 通过在源中使用捕获组并在目标中使用反向引用 </code> 来避免在源和目标中重复 <code>post1
。