Проверка HTTP_REFERER работает плохо
У меня есть следующая конфигурация:
list.map
#################
http:////www.badserver.com http://www.redirectedserver.com
http:////www.badserver.com/attack.html http://www.redirectedserver.com
#################
RewriteMap phishing txt:/opt/rweb/list.map
RewriteMap lc int:tolower
RewriteCond %{HTTP_REFERER} ^https?://([^:/?]+)
RewriteCond ${lc:%1} (.+)
RewriteCond ${phishing:%1|NOT-FOUND} !=NOT-FOUND
RewriteRule ^ http://www.server.com [L]
Проблема в том, что последний RewriteCond работает не очень хорошо. %1 должно быть только доменным именем, но его нельзя найти в list.map.
поэтому, если реферером является http://www.badserver.com/badsite.html он также должен перенаправить запрос.
Может кто-нибудь может помочь мне с этой проблемой.
Если я использую RewriteCond ${phishing:%{HTTP_REFERER}|NOT-FOUND}!=NOT-FOUND вместо RewriteCond ${phishing:%1|NOT-FOUND}!=NOT-FOUND, значит, он работает.
REFERER - www.badserver.com/attack.html и указан в list.map. Я только хочу проверить, находится ли доменное имя реферера в списке list.map. Является ли это возможным?