Редирект всех страниц с подкаталога

A4
На сайте с 13.06.2012
Offline
149
645

Подскажите рабочий редирект в htaccess, чтобы перенаправляло:

site.ru/каталог1/любая_страница_или_каталог на site.ru/любая_страница_или_каталог

site.ru/каталог2/любая_страница_или_каталог на site.ru/любая_страница_или_каталог

site.ru/каталог3/любая_страница_или_каталог на site.ru/любая_страница_или_каталог

J
На сайте с 20.02.2014
Offline
120
jkm
#1


RewriteEngine On

RewriteRule ^каталог1(/.+) $1 [R=301,L]
RewriteRule ^каталог2(/.+) $1 [R=301,L]
RewriteRule ^каталог3(/.+) $1 [R=301,L]
A4
На сайте с 13.06.2012
Offline
149
#2

jkm, а можно эти правила скомпоновать и прописать одной строкой?

J
На сайте с 20.02.2014
Offline
120
jkm
#3


RewriteEngine On

RewriteRule ^(?:каталог1|каталог2|каталог3)(/.+) $1 [R=301,L]

А если имя каталогов отличается только цифрами.


RewriteEngine On

RewriteRule ^каталог[1-3](/.+) $1 [R=301,L]
A4
На сайте с 13.06.2012
Offline
149
#4
jkm:
Код:
RewriteEngine On

RewriteRule ^(?:каталог1|каталог2|каталог3)(/.+) $1 [R=301,L]

прописал, редиректит все, кроме самого каталога:

site.ru/каталог1/ на site.ru/ - не редиректит

M
На сайте с 04.12.2013
Offline
223
#5

Видимо, у вас адреса без слеша в конце.

Знак вопроса после вторых скобок поставьте.

И уж тогда сразу закройте регулярное выражение знаком доллара.

Вместо плюса поставьте звездочку.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
J
На сайте с 20.02.2014
Offline
120
jkm
#6
ant42:
прописал, редиректит все, кроме самого каталога:

site.ru/каталог1/ на site.ru/ - не редиректит

Достаточно заменить квантификатор + на *


RewriteRule ^(?:каталог1|каталог2|каталог3)(/.*) $1 [R=301,L]
A4
На сайте с 13.06.2012
Offline
149
#7

jkm, Да, так работает, спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий