2011-10-31 33 views
7

Ví dụ: Tôi muốn tạo một quy tắc Tự động trả lời rằng sẽ lập bản đồ tất cả các cuộc gọi đến một máy chủ sang máy chủ khác, nhưng giữ gìn các url. Ví dụFiddler: Tạo ra một quy tắc Tự động trả lời để lập bản đồ tất cả các cuộc gọi đến một máy chủ sang máy chủ khác

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

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

trong một quy tắc. Hiện tại, tôi đã thực hiện điều này bằng cách tạo quy tắc Tự động trả lờiN cho mỗi URL mà dự án của tôi gọi, nhưng tôi chắc chắn phải có cách để đúng một quy tắc sử dụng đúng ký tự đại diện. Tôi đã xem http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp, nhưng tôi không thể thấy cách thực hiện. Các thẻ hoang dã dường như là xung quanh khớp và không phải là hành động.

bối cảnh đầy đủ: Tôi đang phát triển trên một nền tảng phiên bản beta và Visual Studio được borked trong đó đi rằng nó được gửi tất cả các yêu cầu để http://localhost:24575 khi dự án của tôi là thực sự chạy trên http://localhost:56832

Trả lời

3

Để ánh xạ từ một lưu trữ máy chủ khác, không sử dụng AutoResponder. Thay vào đó, hãy nhấp vào Công cụ> Máy chủ lưu trữ.

Ngoài ra, bạn có thể nhấp vào Quy tắc> Tùy chỉnh quy, di chuyển đến OnBeforeRequest và viết một chút mã:

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

yêu cầu Lập bản đồ với Fiddler Autoresponder sử dụng Regular Expressions là có thể. Điều này có thể được thực hiện với các quy tắc rexexp. Tuy nhiên điều này dường như không được ghi lại ở bất cứ đâu.

Nếu bạn thêm một quy tắc và sử dụng biểu thức thông thường trong ngoặc đơn, khớp này có thể được sử dụng trong việc lập bản đồ mong muốn khi sử dụng placeholders ... $ n

mỗi số tương ứng với regexp phù hợp trong quy tắc.

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

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

Cụm từ thông dụng được ghi lại trong sách Fiddler, trong trang Trợ giúp được liên kết trên tab Tự động trả lời và trên blog của tôi: http://blogs.msdn.com/b/fiddler/archive/2012/01/09 /fiddler-2.3.8.2-beta-views-woff-mp3-h264-datauris-and-autoresponder-supports-regular-expression-groups.aspx – EricLaw

+0

Nội dung hay. Tôi đã google nó tuyệt vọng không thành công. Đây là một tính năng chính thực sự. Blog tuyệt vời về Fiddler! – dustEffect

13

Đây là cách tôi cấu hình Fiddler2:

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

cấu hình của tôi là như sau:

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

enter image description here

Nhờ EricLaw bình luận ở trên.

3

Bởi vì đây là cách khó tìm hơn nó cần phải có được sử dụng Fiddler để redirect tất cả các yêu cầu cho một để lưu trữ đến máy chủ khác:

Sử dụng tab trả lời tự động để thiết lập một quy định như vậy mà bất kỳ phù hợp với yêu cầu máy chủ cũ của bạn sẽ chuyển hướng đến máy chủ lưu trữ mới của bạn với đường dẫn và chuỗi truy vấn được thêm vào.

Phù hợp với các tùy chọn regex ix để làm cho trường hợp không phân biệt chữ hoa chữ thường và bỏ qua khoảng trắng.Rời khỏi tùy chọn n làm it requires explicitly named capture groups.

Ghi lại đường dẫn và chuỗi truy vấn của yêu cầu và thêm nó vào phản hồi chuyển hướng bằng biến số $1, trong đó truy vấn đường dẫn + là nhóm chụp đầu tiên. Bạn có thể sử dụng các nhóm chụp $1 - $n nếu regex của bạn có nhiều hơn.

Sau đó, Fiddler sẽ phát hành một phản hồi chuyển hướng HTTP 307.

Yêu cầu: regex:^(?ix)http://old.host.com/(.*)$ #Match HTTP host

đáp ứng: *redir:http://new.host.com/$1

Redirect old host to new host

Yêu cầu

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

đáp ứng

HTTP/1.1 307 AutoRedir 
Content-Length: 0 
Location: http://new.host.com/path/to/file.html 
Cache-Control: max-age=0, must-revalidate 
+0

câu hỏi phụ là có cách xác định loại yêu cầu (chỉ yêu cầu POST) –

Các vấn đề liên quan