.htaccess 301重定向不重定向到右URL(不带尾随斜杠)

.htaccess 301重定向不重定向到右URL(不带尾随斜杠),.htaccess,redirect,http-status-code-301,.htaccess,Redirect,Http Status Code 301,我必须手动将我的网站1中的几个URL重定向到网站2 下面是我在网站1的.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.webs

我必须手动将我的网站1中的几个URL重定向到网站2

下面是我在网站1的
.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的两个版本。请参阅测试链接。

按此特定顺序使用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/$1

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

这对@Anirudh有帮助吗?你不需要两个人来完成这项工作。去掉尾随斜杠的那个应该足够了。您只是添加了一个额外的重定向,以便服务器在加载之前运行。@Joe我试过了,但没有成功。这就是我必须同时添加这两个选项的原因。