10

示例:我想创建一个自动响应规则,它将对一个主机的所有调用映射到另一台主机,但保留 urls。例子

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,但我不知道该怎么做。通配符似乎都围绕匹配而不是动作。

完整的上下文: 我正在一个 beta 平台上开发,而 Visual Studio 非常麻烦,以至于当我的项目实际在 http://localhost:56832 上运行时,它会将所有请求发送到http: //localhost:24575

4

4 回答 4

18

这就是我配置 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

在此处输入图像描述

感谢 EricLaw 的上述评论。

于 2014-07-16T07:18:40.620 回答
6

要从一台主机映射到另一台主机,请不要使用 AutoResponder。相反,请单击工具 > 主机。

或者,您可以单击规则 > 自定义规则,滚动到 OnBeforeRequest 并编写一些代码:

if (oSession.HostnameIs("localhost") && (oSession.port == 24575)) oSession.port = 56832;
于 2011-10-31T23:41:37.090 回答
4

因为这比使用 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

将旧主机重定向到新主机

要求

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
于 2015-09-27T20:14:31.053 回答
2

使用正则表达式与 Fiddler Autoresponder 映射请求是可能的。这可以通过 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
于 2013-02-08T09:33:53.663 回答