@nadirq

Как правильно написать регулярное выражение с отрицанием для .htaccess?

На сайте есть разные локализации для разных стран. Выглядят они следующим образом:
example.com/ar
example.com/es
example.com/it
example.com/ru
и еще штук 10

Нужно сделать редирект для всех локалей, исключая две из них. То есть с /ar и /es редирект не нужен.
Как делаю я
RewriteCond %{REQUEST_URI} !(^/(ar|es))
RewriteRule .* http://example.com/some_page.html [R=302,L]


Это не срабатывает. Что я делаю не так?
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
@ShamblerR
Вообще вы не правы, поскольку при 10 сайтах реально проще сделать включение чем исключение по 3 буквам, уж больно высока вероятность попадения в этот диапазон. Так же не в ури вначале помоему нет слеша потому и не раотает.
так же не забудьте о регистронезависимости
RewriteCond %{REQUEST_URI} ^(it|ru|com|kz|ua) [NC]
RewriteRule ^.*$ http://%{SERVER_NAME}/some_page.html [R=301,L]


Кстати зачем вам 302?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы