Перенаправление, добавляющее дополнительные сегменты URL

#apache #.htaccess #redirect #mod-rewrite #url-rewriting

Вопрос:

Я пытаюсь перенаправить запросы для нашего старого блога на новый 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

И я перенаправляюсь на правильную страницу, но в конце моих URL-адресов есть дополнительные сегменты. Нравится

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

Что я делаю не так?

Ответ №1:

С вашими показанными образцами, не могли бы вы, пожалуйста, попробовать следовать. Пожалуйста, очистите кэш вашего браузера перед тестированием ваших 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]
 

Комментарии:

1. Это работает, но это определенно должно быть выше других моих правил. Огромное спасибо @RavinderSingh13!