На рисунке показан редактор фильтров заголовков HTTP. Нажмите на интересующую вас область, чтобы получить объяснение её функции.
В отличие от фильтров web-страниц имя фильтра заголовков очень важно. Это просто имя заголовка, который вы хотите фильтровать и, за исключением регистра, должно точно соответствовать заголовку (к сожалению, здесь нельзя использовать никаких подстановочных знаков). После двоеточия ":" может быть добавлен комментарий, который не влияет на работу фильтра.
Окна для выражения соответствия и текста замены подобны окнам редактора фильтров web-страниц, но поиск соответствия ведется только по содержимому заголовка (не по названию заголовка).
Фильтры заголовков могут делать одну из трех вещей: удаление существующего заголовка, изменение существующего заголовка или добавление нового заголовка.
Для изменения заголовка, выражение соответствия и текст замены должны что-либо содержать. Просто используйте "*" в поле выражения соответствия для соответствия всем заголовкам этого типа.
Для удаления заголовка надо включить выражение соответствия, но оставить текста замены пустым.
Для добавления заголовка (всегда) надо включить текст замены, но оставить выражение соответствия пустым.
Для добавления заголовка (только если он не существует) надо включить текст замены, и добавить "(^?)" в текст соответствия. Выглядит странно? Да, это так! Поскольку (^...) значит НЕ и ? означает ЛЮБОЙ символ, (^?) звучит как "не любой символ"!
Чтобы протестировать работу фильтра, нажмите правой кнопкой в поле соответствия (заголовку или URL), и выберите пункт "Test matching" в открывшемся меню. Откроется Тестовое окно, где вы можете посмотреть, что ваш фильтр будет делать. Просто вставьте содержимое заголовка в верхнее окно (только то, что находится за частью "Header-Name:", не включайте само имя заголовка!).
Бывает, что нужно изменить сам URL страницы. Несмотря на то, что это не является заголовком, Proxomitron будет понимать имя "URL:" как специальный фильтр заголовка. В этом случае будет соответствием будет полный URL (включая часть http://, которую обычное соответстие URL игнорирует).
В тексте замены вы можете использовать одну из команд типа redirect. Их две: $JUMP(someurl) и $RDIR(someurl). Обе перенаправляют на новые (возможно, различные) URL.
$JUMP( ) посылает новый URL назад броузеру. Это удобно, поскольку броузер будет знать, что он получил новый URL и будет корректно отображать его в адресной строке.
$RDIR( ) действует по шпионски, не сообщая ничего броузеру. Может быть полезно. если вы хотите, чтобы броузер думал, что вы пошли в одно место, а в реальности вы идете совсем в другое.
Ниже показан пример использования URL: header для перенаправления URL. Этот фильтр преобразует имя хоста some-site" в "www.some-site.com". Он просто добавляет "www." и ".com" к любым именам без точек (этот фильтр должен быть включен как исходящий).
HTTP Header= Match = Replace = |
URL: Dot-Communize dotless hostnames (out) http://([^./]+)\1/\2 $JUMP(http://www.\1.com/\2) |
Важные особенности фильтра:
Новая опция в тексте замены, "\k", позволяет вам уничтожать любое подключение прежде, чем оно будет загружено. При использовании совместно с соответствием URL, вы можете создавать "черный список" URL, которые никогда не будут приниматься. Для примера смотрите фильтры типа "URL-Killer:".
Выделив текст в поле замены и щелкнув правой кнопкой мыши вы увидите опцию кодирования/декодирования выбранного текста "MIME encode/decode". Она создает логин/пароль для автоматической авторизации на сайтах или прокси-серверах, которые её требуют. Для сайтов используют такой фильтр заголовка...
Name | = Authorization: |
URL | = Сайт, куда вы хотите послать пароль |
Replace | = basic username:password |
Затем выделите часть "username:password" и выберите MIME -> encode в контекстном меню. Конечный результат должен выгладеть примерно так:
basic dXNlcm5hbWU6cGFzc3dvcmQ=
Будучи задействованным, это правило пошлет ваш логин/пароль на сервер автоматически и у вас ничего не будут спрашивать для входа в систему. Обратите внимание: это будет работать для сайтов, использующих "basic" схему авторизации HTTP. Вы можете использовать опцию для декодирования, если захотите посмотреть или изменить ваш пароль позднее.
Создание пароля для прокси-сервера почти такое же - просто измените имя заголовка так:
Name = Proxy-Authorization:
И удалите любое соответствие URL (так как прокси-сервер будет использоваться для всех URL)