Я переместил блог в поддомен, и на этом поддомене все категории изменились, поэтому я хочу сделать список из 301 перенаправления со старого домена на поддомен (другой хостинг).
Проблема, с которой я столкнулся, заключается в добавлении косой черты в конце, поэтому мне не нужно перечислять каждый URL дважды.
Я пробовал это в /blog/.htaccess
:
RewriteEngine On
#RewriteRule ^(.*)$ http://domain.com/blog/$1/ [L,R=301]
Redirect 301 /blog/test/ https://new.domain.com/test/
Redirect 301 /blog/example/ https://new.domain.com/example/
(etc...)
Однако это не работает, поскольку браузер обнаруживает слишком много перенаправлений.
Какой здесь правильный синтаксис?
Я также пробовал:
RedirectMatch /blog/test/?$ https://new.domain.com/test/ [L,R=301]
Но это, похоже, совсем не работает.
Пожалуйста, используйте следующий синтаксис
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
гарантирует, что существующие файлы не будут добавлены косой чертой.
RewriteCond %{REQUEST_URI} !example.php
исключает образец URL, который нельзя переписывать.
RewriteCond% {REQUEST_URI}! (. *) / $, Наконец, срабатывает, когда URL-адреса не содержат косой черты в конце - это все, что нам нужно. Теперь нам нужно перенаправить этот URL с помощью косой черты в конце:
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
перенаправляет 301 на URL-адрес с добавленной косой чертой за нас. Вы должны заменить domain.com своим URL-адресом.
Синтаксис, который кажется работающим:
RedirectMatch 301 /blog/test/?$ https://new.domain.com/test/