Хотел составить правило блокирующее все url типа :
"любая фигня" + ("." или "/") + (ads или adv) + ("." или "/") + "любая фигня"
Наваял :
.+(\/|/.)ads|adv(\/|/.).+
Но както видимо нетак ...
C этим правилом блокируются url , типа :
http://forum.lipetsk-racing.ru//index.p ... &t=2352&s=
Пытался надёргать правил из виндового "proxomitron" .
Но там както подругому всё ...
Ну так вот , может стоит создать раздел в FAQ по "pcre" с наиболее распространёнными правилами , ато функция сильная а описания мало .
Или может в эту тему давайте писать .
Вот первый шаблон :
love - Ловит все url в адресе которых присутствует это слово . Например :
love.mail.ru
maturelovers.com
Автор , SLAVA , ну помогитеж нам , юзерам вашего замечательного редиректора !
Пролейте свет на эту функцию .
pcre шаблоны
Это не так просто.
Почти, как изучение языка программирования.
Думаю, что лучше всего читать мануалы и изучать паттерны по описаниям и примерам.
И по этому вопросу написано много страниц.
Англоязычную документацию легко найти, например man pcrepattern, с русской сложнее. Могу порекомендовать "Perl" O'REILLY Т.Кристиансен, Н.Торкигтон.
Например http://www.linuxshare.ru/docs/devel/lan ... n/ogl6.htm
Почти, как изучение языка программирования.
Думаю, что лучше всего читать мануалы и изучать паттерны по описаниям и примерам.
И по этому вопросу написано много страниц.
Англоязычную документацию легко найти, например man pcrepattern, с русской сложнее. Могу порекомендовать "Perl" O'REILLY Т.Кристиансен, Н.Торкигтон.
Например http://www.linuxshare.ru/docs/devel/lan ... n/ogl6.htm
-
- Сообщения: 49
- Зарегистрирован: Ср окт 20, 2004 12:50
- Контактная информация:
Ну не любит Слава "пцре"...
И, в то же время, совершенно прав: хочешь разобраться -- изучай!
Почему блокируется "forum.lipetsk-racing.ru/index.php?act=ST&f=2&t=2352&s=" пояснить не могу. Х.Е.М.З...
IMHO данный адрес НЕ ДОЛЖЕН блокироваться этим правилом!
Кстати, если "(\/|/.)" должно соответствовать "/" или "/.", то записать нужно так "(\/|\/\.)". Т.е. "точка_литерал", а не "точка_символ_маски".
И часть "ads|adv" означает "adsdv" или adadv", т.е. выбор не из "ads" и "adv", а из "s" и "a"... кажется...
А для затравки, чтоб изучалось лучше, приведу пример как у меня блокируются баннеры (одно из правил):
(ad|ads|adv|bn|pan)(|\..*)\/ad(frame|js|image|log|show|view)\.php(\?|$)
разбор строки по блокам "(...)":
1. ищем ad или ads или adv или bn или pan, поэтому перечень берем в скобки.
2. далее сразу "/ad", или сначала "любая фигня" после точки.
3. после "/ad" опять перечень: frame или js или image или log или show или view, а значит он должен быть в скобках.
4. URL должен заканчиваться на ".php?<параметры запроса>" или ".php".
На счет "js" в п. 3, я, скорее всего, погорячился, но остальное работает нормально в 99% случаев.
И, в то же время, совершенно прав: хочешь разобраться -- изучай!
Почему блокируется "forum.lipetsk-racing.ru/index.php?act=ST&f=2&t=2352&s=" пояснить не могу. Х.Е.М.З...
IMHO данный адрес НЕ ДОЛЖЕН блокироваться этим правилом!
Кстати, если "(\/|/.)" должно соответствовать "/" или "/.", то записать нужно так "(\/|\/\.)". Т.е. "точка_литерал", а не "точка_символ_маски".
И часть "ads|adv" означает "adsdv" или adadv", т.е. выбор не из "ads" и "adv", а из "s" и "a"... кажется...
А для затравки, чтоб изучалось лучше, приведу пример как у меня блокируются баннеры (одно из правил):
(ad|ads|adv|bn|pan)(|\..*)\/ad(frame|js|image|log|show|view)\.php(\?|$)
разбор строки по блокам "(...)":
1. ищем ad или ads или adv или bn или pan, поэтому перечень берем в скобки.
2. далее сразу "/ad", или сначала "любая фигня" после точки.
3. после "/ad" опять перечень: frame или js или image или log или show или view, а значит он должен быть в скобках.
4. URL должен заканчиваться на ".php?<параметры запроса>" или ".php".
На счет "js" в п. 3, я, скорее всего, погорячился, но остальное работает нормально в 99% случаев.