У меня есть правило Modsecurity, которое блокирует все запросы, в которых заголовок Referer в браузере отличается от этого: sub1.example.com
.
Таким образом, правило разрешает запросы только тогда, когда Referer заголовка sub1.example.com
:
SecRule REQUEST_HEADERS:REFERER "!@rx (?i)^https?://sub1.example.com/" /
"id:'7001024',phase:1,log,deny,status:404,msg:'Blocking Wrong or Empty Referer'"
Мой вопрос: как я могу изменить это правило, чтобы также разрешать запросы со вторым референтом, например sub2.example.com
Я не лучший специалист с регулярным выражением, но я думаю, что это то, что вы пытаетесь сделать:
"!@rx (?i)^https\?://(?:sub1\.example\.com|sub2\.example\.com)/"
Это заблокирует все, что не соответствует:
https?://sub1.example.com/
https?://sub2.example.com/
Примечание: я добавил несколько побегов ?
и .
Я также думаю, что вы могли бы добавить t:lowercase,
и вам не пришлось бы использовать (?i)
в регулярном выражении.