Cuestión : Leer el archivo de XML en global.asax para volver a dirigir la petición de página de corregir la página

He creado un archivo del xml que tiene un abd del URL de la vanidad el URL de la reorientación. Quisiera que el asax global leyera este archivo para volver a dirigir la petición de página a la página apropiada. TAN por ejemplo si alguien mecanografía adentro el rel= " nofollow " del " _blank " del target= de " http://www.company.com/products " del href= del el ducts de http://www.company.com/pro tiene que se vuelva a dirigir al rel= " nofollow " del " _blank " del target= de " http://www.company.com/siteproducts/products.aspx " del href= del el eproducts/products.aspx de http://www.company.com/sit. ¿debajo es un cierto código I wrote.




/products/nitylink>
/siteproducts/products.aspx?
{dtblVanityLinks = falta de información de WT.MC_ID=23edirectlink>



global.asax

public Application_BeginRequest () del
DataTable; strThisUrl = falta de información de la secuencia del
; strSelect = falta de información de la secuencia del
; arrMatches = falta de información del
DataRow []; strRedirectLink = falta de información de la secuencia del
; dtblVanityLinks = GetVanityLinks del

(); strThisUrl del
= Request.Path.ToLower (); ¡
si (Request.ApplicationPath! = “/") {strThisUrl del
= strThisUrl.Remove (0, Request.ApplicationPath.Length); strSelect del
del
} = “vanitylink='" + strThisUrl + “'”; arrMatches del
= dtblVanityLinks.Select (strSelect, “vanitylink”);
si (arrMatches.Length > 0) {strRedirectLink del
= arrMatches [0] [“redirectlink”]; strRedirectLink del
= Request.ApplicationPath + strRedirectLink; del
Context.RewritePath (strRedirectLink);
{dstVanityLinks = falta de información del

public DataTable GetVanityLinks del
} del
} () del grupo de datos del
; dtblVanityLinks = falta de información del
DataTable; dtblVanityLinks del

= Context.Cache (“vanitylinks");
si (falta de información) del == de los dtblVanityLinks {dstVanityLinks del
= nuevo grupo de datos ();
dstVanityLinks.ReadXml (Server.MapPath (“VanityURLRedirects.xml”)); dtblVanityLinks del
= dstVanityLinks.Tables (0);
Context.Cache.Insert (“vanitylinks”, dtblVanityLinks, nuevo CacheDependency (de Server.MapPath (“VanityURLRedirects.xml”))); dtblVanityLinks de vuelta del
del
}; las ideas del


Any del
} en cómo conseguir esto para trabajar son grandemente appreciated.
class= del

Respuesta : Leer el archivo de XML en global.asax para volver a dirigir la petición de página de corregir la página

Usted puede utilizar uno de los módulos pre-construidos en vez de la escritura él usted mismo pues es aburrido y error - propenso.

http://urlrewriter.net/

El código actualizado también se fija abajo.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
    Application_BeginRequest vacío (remitente del objeto, EventArgs e)
    {
        RewriteUrl ();
    }

    DataTable público GetVanityLinks ()
    {
        dstVanityLinks = falta de información del grupo de datos;
        dtblVanityLinks = falta de información de DataTable;

        //dtblVanityLinks = Context.Cache (“vanitylinks”);

        si (falta de información del == de los dtblVanityLinks)
        {
            dstVanityLinks = nuevo grupo de datos ();
            dstVanityLinks.ReadXml (Server.MapPath (“VanityURLRedirects.xml”));
            dtblVanityLinks = dstVanityLinks.Tables [0];
            Context.Cache.Insert (“vanitylinks”, dtblVanityLinks, nuevo CacheDependency (Server.MapPath (“VanityURLRedirects.xml”)));
        }

        dtblVanityLinks de vuelta;
    }

    público RewriteUrl vacío ()
    {
        dtblVanityLinks = falta de información de DataTable;
        strThisUrl = falta de información de la secuencia;
        strSelect = falta de información de la secuencia;
        arrMatches = falta de información de DataRow [];
        strRedirectLink = falta de información de la secuencia;

        dtblVanityLinks = GetVanityLinks ();

        strThisUrl = Request.Path.ToLower ();

        ¡si (Request.ApplicationPath! = “/")
        {
            strThisUrl = strThisUrl.Remove (0, Request.ApplicationPath.Length);
        }

        strSelect = “vanitylink = “” + strThisUrl + “” “;
        arrMatches = dtblVanityLinks.Select (strSelect, “vanitylink”);
        si (arrMatches.Length > 0)
        {
            strRedirectLink = arrMatches [0] [“redirectlink”] .ToString (); ;
            strRedirectLink = Request.ApplicationPath + strRedirectLink;

            Context.RewritePath (strRedirectLink);
        }
    }
Otras soluciones  
 
programming4us programming4us