<< Кликните, чтобы показать Содержание >> Фильтрация по URL |
Задача
Необходимо в случае присутствия в URL слов <forum, phorum, post, submit> для метода get установить на сообщение пометку "user reads forums".
Описание логики решения
Проверьте URL и метод HTTP-запроса, используя фильтр HTTP-протокола. Для проверки URL следует использовать условие "url", для проверки метода HTTP-протокола следует использовать условие "method".
Решение
Например, файл фильтра HTTP-протокола может выглядеть так:
<?xml version="1.0" encoding="utf-8"?> <filter name="HTTP filter" version="1.0">
<table name="main">
<rule enabled="true"> <comment> Detect requests possibly related to forums. </comment> <match> <and> <c name="method" value="GET"/> <c name="url" op="re" value="http://.*/.*(forum|phorum|post|submit).*" /> </and> </match> <action name="tag" value="USER_READS_FORUMS"/> </rule>
<rule enabled="true"> <action name="accept" /> </rule> </table> </filter> |
---|
Подробное описание условий фильтрации "url" и "method" смотрите в разделах Условие URL и Условие METHOD.
Комментарии и общие рекомендации
1. Следует помнить, что на этапе фильтрации HTTP-протокола ещё не существует сообщений, проверка на их наличие в трафике будет выполнена позже. Однако, метки и теги, установленные для запросов на этом этапе будут сохранены и в сообщении (если оно будет извлечено из этих запросов). Эти метки и теги будут доступны для проверки в фильтре сообщений и в дальнейшем в виде заголовков X-Sensor-Tags и X-Sensor-Labels.
2. Следует помнить, что в условие "url" попадает полный URL запроса, включая имя хоста (т.е. в виде http://www.mail.ru/mail/read.php?some=parameter¶m2), это необходимо учитывать в условии проверки.