У меня есть ситуация, когда я пытаюсь использовать директиву Apache RedirectMatch для перенаправления всех пользователей на URL-адрес HTTPS , за исключением одного (Linux) пользователя, который получает доступ к своему собственному веб-пространству.Я нашел фрагмент кода регулярного выражения, который отменяет имя пользователя:
^((?!andy).)*$
, но когда я пытаюсь использовать его в директиве:
RedirectMatch ^((?!andy).)*$ https://www.example.com/
URL:
http://www.example.com/~andy/
по-прежнему перенаправляется на HTTPS URL:
https://www.example.com/
Когда я хочу, чтобы оно игнорировало перенаправление.Я не специалист по регулярным выражениям (или Apache), поэтому любая помощь в получении этой работы будет принята с благодарностью.
Спасибо, Стивен
Редактировать: ОК, сюжет утолщается ...если я закомментирую строку:
# RedirectMatch ^((?!andy).)*$ https://www.example.com/
и перезапущу Apache, а затем попробую URL:
http://www.example.com/andy
, я получу ответ 404, что ожидается.Но, если я попробую URL:
http://www.example.com/~andy
Перенаправление сработало, и я перенаправлен на:
https://www.example.com/
, и, как я уже сказал, перенаправление закомментировано, и я перезапустилсервер.Как это может случиться?Так что это не просто регулярное выражение, похоже, Apache перенаправляет без инструкций!