Usando ISAPI Rewrite 3 & ASP.Net MVC?
-
05-07-2019 - |
Pergunta
Eu estou usando ISAPI Rewrite3 no IIS6 para dois diretórios virtuais no momento que contêm Wordpress.
I precisa configurar algumas regras na raiz do site para redirecionar URLs antigos para novos URLs:
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/
Eu preciso fazer isso sem quebrar MVC (como seu conjunto de curinga) e sem afetar os dois diretórios virtuais.
Também como é que eu definir um wildcard para /somefolder/file_1.htm o bit numérico.
Qualquer ajuda muito apreciada
(heliontech iis reescrita)
Solução
arquivo .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]
Adicionado código para 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 a opção 4 a partir deste blog http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/ mas ligeiramente alterado.
Isto também significa que eu virei mapeamento de curinga off.