Fiddler: создание правила автоответчика для сопоставления всех вызовов с одного хоста на другой хост - PullRequest
8 голосов
/ 01 ноября 2011

Пример: я хочу создать одно правило автоответа, которое будет сопоставлять все вызовы с одного хоста на другой хост, но сохраняет URL-адреса .Примеры

http://hostname1/foo.html -> http://hostname2/foo.html

и

http://hostname1/js/script.js -> http://hostname2/js/script.js

в одном правиле. На данный момент я выполнил это, создав правило автоответа для каждого URL, который вызывает мой проект, но я уверен, что должен быть способ исправить одно правило, используя правильные символы подстановки.Я посмотрел на http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp,, но не мог понять, как это сделать.Кажется, что все дикие карты находятся вокруг соответствия, а не действия.

Полный контекст: Я работаю на бета-платформе, и Visual Studio работает так далеко, что отправляет все запросы на http://localhost:24575, когда мой проект фактически выполняется http://localhost:56832

Ответы [ 4 ]

14 голосов
/ 16 июля 2014

Вот как я настроил Fiddler2:

I want to redirect all requests from http://server-name/vendor-portal-html/ to http://localhost/vendor-portal-html/ 

Моя конфигурация следующая:

REGEX:.*/vendor-portal-html/(.*)   to    http://127.0.0.1/vendor-portal-html/$1

enter image description here

Спасибо EricLaw за комментарий.

4 голосов
/ 27 сентября 2015

Поскольку найти его было намного сложнее, чем использовать Fiddler для перенаправления всех запросов одного хоста на другой хост:

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

Соответствует параметрам регулярного выражения ix, чтобы сделать его без учета регистра и игнорировать пробелы.Не указывайте параметр n, поскольку требует наличия явно заданных групп захвата .

Захват пути и строки запроса для запроса и добавление его в ответ перенаправления с использованием переменной $1,где путь + запрос - первая группа захвата.Вы можете использовать группы захвата $1 - $n, если у вашего регулярного выражения есть больше.

Fiddler выдаст ответ HTTP 307 перенаправления.

Запрос: regex:^(?ix)http://old.host.com/(.*)$ #Match HTTP host

Ответ: *redir:http://new.host.com/$1

Redirect old host to new host

Запрос

GET http://old.host.com/path/to/file.html HTTP/1.1
Host: old.host.com
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive

Ответ

HTTP/1.1 307 AutoRedir
Content-Length: 0
Location: http://new.host.com/path/to/file.html
Cache-Control: max-age=0, must-revalidate
3 голосов
/ 01 ноября 2011

Для отображения с одного хоста на другой, не используйте автоответчик.Вместо этого нажмите Инструменты> Хосты.

В качестве альтернативы, вы можете нажать Правила> Настроить правила, прокрутить до OnBeforeRequest и написать немного кода:

if (oSession.HostnameIs("localhost") && (oSession.port == 24575)) oSession.port = 56832;
2 голосов
/ 08 февраля 2013

Возможно сопоставление запросов с автоответчиком Fiddler с использованием регулярных выражений.Это можно сделать с помощью правил rexexp.Однако, похоже, это нигде не задокументировано.

Если вы добавляете правило и используете в скобках регулярные выражения, эти соответствия можно использовать в желаемом отображении при использовании заполнителей ... $ n

каждое число соответствует регулярному выражению в правиле.

Example of Rule: regex:http://server1/(\w*) -> http://server2/

This will result in the following mapping: http://server1/foo.html -> http://server2/foo.html
...