2011-10-31 8 views
7

Ejemplo: quiero crear uno regla AutoResponse que trazará un mapa de todas las llamadas a un host a otro host, pero preservar las direcciones URL. Ejemplosviolinista: Creación de una regla AutoResponse para mapear todas las llamadas a un host a otro host

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

y

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

en una regla. Por ahora, he logrado esto creando una regla de autoResponse para cada URL que llama mi proyecto, pero estoy seguro de que debe haber una forma de corregir una regla utilizando los comodines correctos. Miré http://www.fiddler2.com/Fiddler2/help/AutoResponder.asp, pero no pude ver cómo hacerlo. Todos los comodines parecen estar alrededor del emparejamiento y no de la acción.

contexto completa: estoy desarrollando sobre una plataforma beta y Visual Studio es borked en tal distancia que está enviando todas las solicitudes de http://localhost:24575 cuando mi proyecto se ejecuta realmente en http://localhost:56832

Respuesta

3

Para crear un mapa de una host a otro, no use AutoResponder. En su lugar, haga clic en Herramientas> Hosts.

Como alternativa, puede hacer clic en Reglas> Reglas Personalizar, vaya a OnBeforeRequest y escribir un poco de código:

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

solicitudes de asignación con Fiddler respuesta automática utilizando expresiones regulares es posible. Esto se puede hacer con las reglas de rexexp. Sin embargo, esto no parece estar documentado en ninguna parte.

Si se agrega una regla y utiliza expresiones regulares dentro de paréntesis, estos partidos se pueden utilizar en la asignación deseada al utilizar los marcadores de posición ... $ n

cada número corresponde a la expresión regular emparejado en la regla.

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

Las expresiones regulares están documentadas en el libro de Fiddler, en la página de Ayuda vinculada en la pestaña AutoResponder, y en mi blog: 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

Cosas agradables. Lo busqué en Google desesperadamente sin éxito. Esta es una característica importante de hecho. ¡Genial blog sobre Fiddler! – dustEffect

13

Así es como he configurado Fiddler2:

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

Mi configuración es la siguiente:

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

enter image description here

Gracias a EricLaw para el comentario anterior.

3

Debido a que esta era la forma más difícil de encontrar lo que debería haber sido la de utilizar Fiddler para redirigir todas las peticiones para que uno host a otro host:

Utilice la ficha autoresponder para establecer una regla tal que cualquier solicitud coincidente su antiguo host redirigirá a su nuevo host con la ruta y la cadena de consulta añadidas.

Coincida con las opciones de expresión regular ix para que no distinga entre mayúsculas y minúsculas e ignore el espacio en blanco.Deje la opción n como it requires explicitly named capture groups.

Capture la ruta y la cadena de consulta de la solicitud y añádala a la respuesta de redirección utilizando la variable $1, donde la ruta + consulta es el primer grupo de captura. Puede usar los grupos de captura $1 - $n si su expresión regular tiene más.

Fiddler emitirá una respuesta de redireccionamiento HTTP 307.

Solicitud: regex:^(?ix)http://old.host.com/(.*)$ #Match HTTP host

Respuesta: *redir:http://new.host.com/$1

Redirect old host to new host

Solicitud

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

Respuesta

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

pregunta lateral hay una forma de definir el tipo de solicitud (digamos solo solicitudes POST) –

Cuestiones relacionadas