Назад | Перейти на главную страницу

Что случилось с RedirectMatch для Apache 2.2 mod_alias?

Мы используем HTTPD-сервер Apache версии 2.2. Я безуспешно пытаюсь использовать RedirectMatch для Apache 2.2 mod_alias ( http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch)

Мне нужно создать правило, которое будет перенаправлять только URL-адреса без параметров change_url=1 например

https://<IP>/servlet1?id=1&type=2&change_url=1 

Я пробовал использовать следующее правило:

RedirectMatch (.*)change_url=1(.*) /keepurlprocess/$1

К сожалению, он не работает с обязательным URL только тогда, когда change_url в URL:

https://<IP>/change_url=1 

Что не так в моем регулярном выражении? Как его применить к параметрам запроса? Кроме того, у меня есть конкретный параметр type. Для некоторых типов перенаправление не требуется:

https://<IP>/servlet1?id=1&type=do_not_redirect&change_url=1 

Можно ли создать правило, как показано ниже?

RedirectMatch (.*)(change_url=1 AND NOT type=do_not_redirect)(.*)  /keepurlprocess/$1

Взгляните сюда. Вы должны иметь возможность удалить перенаправление в инструкции IF

https://httpd.apache.org/docs/2.4/mod/core.html#if