Fiddler:创建自动响应规则,将所有对一个主机的呼叫映射到另一个主机

时间:2011-10-31 23:36:38

标签: proxy fiddler auto-responder

实施例: 我想创建一个 AutoResponse规则,将所有对一个主机的调用映射到另一个主机,但保留网址。实例

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

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

在一条规则中。 现在,我已经通过为项目调用的每个URL创建了一个N AutoResponse规则来实现这一点,但我确信必须有一种方法可以使用正确的通配符来修改一条规则。我看了http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp,但我看不出怎么做。外卡似乎都在匹配而不是动作。

完整的上下文:我正在开发一个测试版平台,并且当我的项目实际运行http://localhost:24575时,它正在向所有请求发送到http://localhost:56832

4 个答案:

答案 0 :(得分:14)

这是我配置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的上述评论。

答案 1 :(得分:4)

因为这比使用Fiddler 重定向所有请求以便主持另一台主机更难以找到:

使用AutoResponder选项卡设置规则,以便与旧主机匹配的任何请求将重定向到新主机,并附加路径和查询字符串。

与正则表达式选项ix匹配,使其不区分大小写并忽略空格。不要将n选项设为it requires explicitly named capture groups

捕获请求的路径和查询字符串,并使用变量$1将其附加到重定向响应,其中path + query是第一个捕获组。如果你的正则表达式有更多,你可以使用捕获组$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

答案 2 :(得分:3)

要从一个主机映射到另一个主机,请不要使用AutoResponder。而是,单击工具&gt;主机。

或者,您可以点击规则&gt;自定义规则,滚动到OnBeforeRequest并写一些代码:

if (oSession.HostnameIs("localhost") && (oSession.port == 24575)) oSession.port = 56832;

答案 3 :(得分:2)

使用正则表达式与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