RedirectMatch 添加额外的 url 段

问题描述

我正在尝试将我们旧博客的请求重定向到子域上的新 URL。 旧网址看起来像

https://www.website.com/blog-name/post/slug-of-the-title

它需要重定向

https://stage.website.com/blog-name/slug-of-the-title

我在我的 .htaccess 中使用这个规则

RedirectMatch ^/blog-name/post/(.*)$ https://stage.website.com/blog-name/$1

我被重定向到正确的页面,但我的网址末尾有额外的部分。喜欢

https://stage.website.com/blog-name/slug-of-the-title/?/blog-name/post/slug-of-the-title

我做错了什么?

解决方法

根据您展示的样品,您可以尝试以下操作吗?请在测试您的 URL 之前清除浏览器缓存。确保将这些规则保留在 .htaccess 规则文件的顶部(以防您的 .htaccess 文件中还有更多规则)。

RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(?:www\.)?website\.com$ [NC]
RewriteRule ^blog-name/post/(.*)/?$ https://stage.website.com/blog-name/$1? [NC,R=301,L]