Pasar de URLRewriting.Net a mod_rewrite de apache y de iis
Alberto León <[email protected]>
| Newsgroups | gmane.comp.gnome.mono.hispano |
|---|---|
| Message-ID | <[email protected]> |
Hace unos meses trabajé un sitio web (asp.net) y necesitaba una herramienta
para reescritura de direcciones. Utilicé UrlRewriting.Net, que es de código
abierto, pero al cabo de un tiempo la cantidad de reglas creció mucho y tuve
muchos problemas con el consumo de recursos (un extra de 300kb por sesión.)
Tras mucho buscar y no encontrar nada que mejorara eso consulté varias
fuentes y finalmente un amigo me convenció para pasarme a mod_rewrite.
Las reglas de UrlRewriting eran numerosas así que pasarlas a mano para
mod_rewrite era bastante duro.
He hecho un pequeño programa en GTK#. Solo tienes que elegir el web.config y
apretar a transformar y ya pasa todas las reglas de UrlRewriting.Net al
formato de mod_rewrite.
He usado una cadena de Regex que me ha costado bastante y que os facilito.
Creo que el programa puede ser útil.
¿Dónde me sugeris colgar los fuentes para quien quiera aprovecharlo o
estudiarlo?
Un saludo.
P.D. Os dejo aquí el código por si os resulta útil. Recomendado por mi SEO
he cambio mis aspx por html en las reglas.
- - - - - - - -
Tengo creado un FileChooserButton (archivo) y un TextView (vistadeTexto) :p
- - - - - - - -
Regex rx = new
Regex("<add[\\s\\S]*?virtualUrl=\".*~(?<virtual>.*)\"[\\s\\S]*?rewriteUrlParameter=\"(?<rewrite>.*)\"[\\s\\S]*?destinationUrl=\".*~(?<destino>/.*)\"[\\s\\S]*?/>?",RegexOptions.Multiline
| RegexOptions.IgnoreCase);
string busqueda;
using (StreamReader sr = new StreamReader(archivo.Filename))
{
busqueda = sr.ReadToEnd();
}
if(busqueda!=null){
MatchCollection matches = rx.Matches(busqueda);
StringBuilder lista = new StringBuilder();
lista.AppendLine("RewriteEngine On");
string formato = "RewriteRule {0} {1}";
foreach (Match match in matches)
{
lista.AppendLine(String.Format(formato,match.Groups["virtual"].Value.Replace(".aspx",".html"),match.Groups["destino"]));
}
vistadeTexto.Buffer.Text = lista.ToString();
}
_______________________________________________
Mono-hispano mailing list
[email protected]
https://listas.hispalinux.es/mailman/listinfo/mono-hispano