Pregunta

Estoy usando ISAPI Rewrite3 en IIS6 para dos directorios virtuales en este momento que contienen Wordpress.

Necesito configurar algunas reglas en la raíz del sitio para redirigir las URL antiguas a nuevas URL:

i.e.

http://www.example.com/somefolder/* > http://www.example.com/newfolder/

&

http://www.example.com/somefolder/file_1.htm > http://www.example.com/newmvcpath/

Necesito hacer esto sin romper MVC (como está configurado como comodín) y sin afectar los dos directorios virtuales.

También puedo configurar un comodín para /somefolder/file_1.htm el bit numérico.

Cualquier ayuda muy apreciada

(Heliontech es reescribir)

¿Fue útil?

Solución

archivo .htaccess

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.64

RewriteEngine on

#301 Redirections
#FRANCE (all .html files in a folder)
RewriteRule places-in-france/(.*)\.html places/france [NC,R=301]

#Numeric
RewriteRule companies-france/Companies-in-Pyrenees_(.*)\.htm companies/france [NC,R=301]

#rest of stuff
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Add extensions to this rule to avoid them being processed by ASP.NET
RewriteRule (.*)\.(css|gif|png|jpeg|jpg|js|zip) $1.$2 [I,L]

# Prefixes URLs with "rewritten.aspx/", so that ASP.NET handles them
RewriteRule ^(.*) /rewritten.aspx/$1 [I]

Código agregado a Global.asax.cs

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpApplication app = sender as HttpApplication;
    if (app != null)
        if (app.Request.AppRelativeCurrentExecutionFilePath == "~/rewritten.aspx")
            app.Context.RewritePath(
                app.Request.Url.PathAndQuery.Replace("/rewritten.aspx", "")
            );
}

Usando la opción 4 de este blog http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/ pero ligeramente modificado.

Esto también significa que desactivé la asignación de comodines.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top