2011-04-06 10 views
5

Tengo un sitio .NET que estoy eliminando y planeo redirigir todas las solicitudes a 'www.misitio.com' usando una regla de reescritura en el web.config. Debería ser una tarea simple, pero no lo es. He quitado todo el contenido del sistema de archivos, excepto una sola página Default.aspx y una web.config defecto a la siguiente regla de reescritura:Usar la reescritura de URL de IIS7 para redirigir todas las solicitudes

<rule name="Redirect All" stopProcessing="true"> 
    <match url="^(www\.)?mysite\.com(/.+)$" /> 
    <action type="Redirect" url="www.mysite.com" appendQueryString="false" /> 
</rule> 

Si solicito www.mysite.com/garbage.aspx el servidor todavía estoy tratando de buscar garbage.aspx, o cualquier otra URL que proporcione, como si la regla de reescritura no estuviera allí. Muy frustrante. Ideas?

Respuesta

5

¿Desea redirigir TODAS las solicitudes a su nuevo sitio? Si es así, esto debería hacerlo:

<match url=".*" /> 
+0

¿No debería la expresión regular anterior realizar de manera efectiva lo mismo ya que todas las solicitudes se realizarán en alguna página en mysite.com? Tengo una regla similar para las URL canónicas que funciona bien. Realmente no veo dónde estoy arruinando. – joelmdev

+0

Estoy lejos de ser un experto en expresiones regulares, pero creo que tiene que ver con sus agrupaciones en la expresión regular y la forma en que las utiliza el reescritor de IIS. ¿Qué sucede cuando pruebas la expresión regular que proporcioné? Lo siento, no puedo ser más útil con este comentario en particular. – Matt

+0

Terminé redireccionando a un sitio web diferente en cuyo caso su solución funcionó a las mil maravillas. Sin embargo, creo que tendría que agregar una regla para negar un enlace interno o de lo contrario la regla de redireccionamiento sería un bucle ... algo que creo que tendría que haber tenido que ver con mi regla original también. Gracias por tu ayuda. – joelmdev

Cuestiones relacionadas