#regex #apache #.htaccess #redirect
#регулярное выражение #apache #.htaccess #перенаправление
Вопрос:
Я пытаюсь настроить перенаправление для всех, которое исключает определенные строки.
Для общего доступа я использую регулярное выражение:
^(.*)$
Как бы я ни хотел исключить URL-адреса, такие как domain.com/wp-admin /* и /wp-login.php
Я придумал это регулярное выражение, но оно не работает:
^(?!(?:wp-admin/.*|wp-login.php.*))(.*)$
Любая помощь очень ценится.
Спасибо
Ответ №1:
В вашем примере вы не выполняете экранирование /
после wp-admin
(или .
между login
и php
), и любая последовательность символов .*
для просмотра может быть в начале. Что касается этого:
^(?!.*wp-admin/.*|.*wp-login.php)(.*)$
должно быть в порядке: https://regex101.com/r/j9IWcn/1
С:
(?!.*wp-admin/.*|.*wp-login.php)
: отрицательный прогноз, говорящий, что нет- нулевой или неограниченный символ, за которым следует «wp-admin/*» (с * здесь в качестве подстановочного знака) или
- нулевой или неограниченный символ, за которым следует «wp-login.php «
(.*)
: все, что угодно, только для проверки остальной части ввода