На сайте есть каталог с категориями
site.ru/catalog
site.ru/catalog/category1
site.ru/catalog/category2
...
Изменился url каталога. Как настроить редирект через файл htaccess, чтобы 301 перенаправление затрагивало только одну родительскую страницу, без дочерних? Чтобы стало так:
site.ru/tovari
site.ru/catalog/category1
site.ru/catalog/category2
...
Если прописываю просто редирект - «Redirect 301 /catalog
http://site.ru/tovari», то меняется URL как самой страницы, так и всех дочерних. Получается вот так:
site.ru/tovari
site.ru/tovari/category1
site.ru/tovari/category2
...
Update: разобрался сам
Необходимо в файле .htaccess прописывать такую конструкцию:
RedirectMatch 301 /catalog^ http://site.ru/tovari
Директива RedirectMatch позволяет использовать регулярные выражения:
<ul>
<li>Круглые скобки () используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.</li>
<li>Символ ^ обозначает начало строки.</li>
<li>Символ $ обозначает конец строки.</li>
<li>Символ . обозначает любой символ.</li>
<li>Символ | обозначает альтернативу. Например, выражения "A|B" означают "A или B".</li>
<li>Символ ? ставится после символа (группы), который может как присутствовать, так и отсутствовать.</li>
<li>Символ * ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.</li>
<li>Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.</li>
<li>Квадратные скобки [] используются для перечисления допустимых символов.</li>
<li>Квадратные скобки [^] используются для перечисления недоступных символов.</li>
<li>Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде.</li>
<li>Все, что расположено после символа '#', считается комментарием.</li>
</ul>