Apache mod_rewrite, с помощью текущего URL в RewriteCond

Вот мой список и почему я использую их:

zen.spamhaus.org - Всесторонний РУБЛЬ, ловит тонну источников спама, обновляемых регулярно. У них есть долгая история и достойная репутация в сообществе фильтрации спама. Я слышал некоторые отрицательные моменты о них время от времени, но это обычно без реальной заслуги. Оборотная сторона - то, что, если Ваш объем трафика является достаточно большим, они блокируют доступ к бесплатному списку, и необходимо будет установить заплаченную учетную запись. Почтовые серверы персонального или малого бизнеса обычно не имеют этой проблемы.

b.barracudacentral.org - Другой очень хороший список от другого крупного промышленного игрока. Я услышал много отрицательных моментов о самих устройствах Барракуды, но их РУБЛЬ является наивысшей точкой достижения. Оборотная сторона - то, что необходимо зарегистрироваться в них для использования его. У нас никогда не было положительной лжи, сообщил, что это было вызвано этим списком, и он блокирует большой трафик для нас. См. http://www.barracudacentral.org/rbl для деталей.

Мы нашли, что использование одних только этих двух списков, видим значительное сокращение потребления спама на сервере. Другие списки, которые мы, даже попробовали не близко подошли к тому, чтобы быть столь же продуктивным как ни один из этих списков и по существу просто потратили впустую сетевые ресурсы и время при обработке входящих сообщений.

Вот некоторые, что я не использую и почему (Ваш опыт может варьироваться):

bl.spamcop.net - Слишком много ложных положительных сторон для нашего вкуса. Они полагаются почти полностью на пользовательские представления для включения списка, и люди, отправляющие, являются обычно счастливым триггером и отправляют даже законные сообщения как спам к их сервису, заставляя популярных поставщиков быть заблокированными, когда они, вероятно, не должны быть. Я услышал, что это было недавно улучшено, но мы были записаны слишком много раз, чтобы возвратиться и попробовать еще раз просто все же.

dnsbl.sorbs.net - Они выполняют всесторонний список, но существует слишком много опций для моего вкуса. У них есть много покрытия и блок большой трафик, но нахождение правильного соединения списков, которые они предоставляют, требует большого метода проб и ошибок. Процесс удаления для их списка спама требует минимального пожертвования поддающегося проверке на одно из их утвержденных благотворительных учреждений. Если один из моих клиентов заканчивает в их списке (безотносительно причины), и мы блокируем их трафик, я не хочу должным быть говорить им, что они должны пожертвовать на благотворительность для успокоения черного списка, который мы используем. Они, конечно, свободны выполнить свой список однако, им нравится, но это не вид новостей, которые я хочу сообщить своим клиентам, если они заканчивают на СОРБИРОВАНИИ, перечисляют и не могут послать мне электронное письмо.

1
задан 4 July 2009 в 00:10
2 ответа

Можно получить доступ к "текущему" URI через обратную ссылку. Из документации RewriteRule...

TestString является строкой, которая может содержать следующие расширенные конструкции в дополнение к простому тексту:

  • Обратные ссылки RewriteRule: Это обратные ссылки формы $N (0 <= N <= 9), которые обеспечивают доступ к сгруппированным частям (в круглых скобках) шаблона от RewriteRule, который подвергается текущему набору RewriteCond условия.

Можно обработать начальную наклонную черту более чисто также — запрос, который URI всегда запускает с a /. (Самый короткий запрос, который можно выполнить, GET / HTTP/1.0.) Решение...

# Map '/' to '/home'
RewriteRule ^/$ /home

# Check for cached page
RewriteCond %{DOCUMENT_ROOT}/system/cache/$1.html -f
RewriteRule ^/(.+)$ /system/cache/$1.html [QSA,L]
2
ответ дан 3 December 2019 в 20:01

Основной вопрос: Вы не должны должны быть волноваться об этом. Да, Ваше второе правило не будет соответствовать по начальному запросу, но Вашему переписывать к /home генерирует внутренний подзапрос, который будет затем соответствовать кэширующемуся правилу.

Вопрос о стороне: Мы используем $1 когда мы имеем в виду $1. :) $0 относится ко всему соответствию шаблона, где $1 относится к первой группе фиксации (заключенный в скобки блок) в соответствии. (Который действительно означает, что Ваше второе правило могло быть так же просто написано RewriteRule .+ /system/cache/$0.html. Люди часто считают это менее ясным, чем использование явного получения как, Вы делаете, все же.)

1
ответ дан 3 December 2019 в 20:01
  • 1
    Я don' t думают, что внутренний подзапрос происходит, посмотрите мое редактирование выше. It' s передал до прокси, затем направляющие обрабатывают запрос.. не, что я хочу. –  Daniel Beardsley 4 July 2009 в 00:11

Теги

Похожие вопросы