Questione : Leggere la lima di XML in global.asax per riorientare la richiesta di pagina di correggere la pagina

Ho generato una lima del xml che ha un abd del URL di vanità il URL di nuovo orientamento. Voglio il asax globale leggere questa lima per riorientare la richiesta di pagina alla pagina adatta. COSÌ per esempio se qualcuno scriv dentro il rel= " nofollow " " del _blank " " del target= " di http://www.company.com/products del href= di il ducts di http://www.company.com/pro ha che be è riorientato al rel= " nofollow " " del _blank " " del target= " di http://www.company.com/siteproducts/products.aspx del href= di eproducts/products.aspx di http://www.company.com/sit. sotto è un certo codice I wrote.




/products/nitylink>
/siteproducts/products.aspx?
{dtblVanityLinks = posizione di segnale minimo di WT.MC_ID=23edirectlink>



global.asax

public Application_BeginRequest () del
DataTable; strThisUrl = posizione di segnale minimo della stringa del
; strSelect = posizione di segnale minimo della stringa del
; arrMatches = posizione di segnale minimo del
DataRow []; strRedirectLink = posizione di segnale minimo della stringa del
; dtblVanityLinks = GetVanityLinks del

(); strThisUrl del
= Request.Path.ToLower ();
se (Request.ApplicationPath! = “/") {strThisUrl del
= strThisUrl.Remove (0, Request.ApplicationPath.Length); strSelect del
del
} = “vanitylink='" + strThisUrl + “'„; arrMatches del
= dtblVanityLinks.Select (strSelect, “vanitylink„);
se (arrMatches.Length > 0) {strRedirectLink del
= arrMatches [0] [“redirectlink„]; strRedirectLink del
= Request.ApplicationPath + strRedirectLink; del
Context.RewritePath (strRedirectLink);
{dstVanityLinks = posizione di segnale minimo del

public DataTable GetVanityLinks del
} del
} () di gruppo di dati del
; dtblVanityLinks = posizione di segnale minimo del
DataTable; dtblVanityLinks del

= Context.Cache (“vanitylinks");
se (posizione di segnale minimo) del == dei dtblVanityLinks {dstVanityLinks del
= nuovo gruppo di dati ();
dstVanityLinks.ReadXml (Server.MapPath (“VanityURLRedirects.xml„)); dtblVanityLinks del
= dstVanityLinks.Tables (0);
Context.Cache.Insert (“vanitylinks„, dtblVanityLinks, nuovo CacheDependency ( di Server.MapPath (“VanityURLRedirects.xml„))); dtblVanityLinks di ritorno del
del
}; le idee del


Any del
} su come convincere questo per funzionare è notevolmente appreciated.
class= del

Risposta : Leggere la lima di XML in global.asax per riorientare la richiesta di pagina di correggere la pagina

Potete utilizzare uno dei moduli pre-costruiti anziché scrittura esso voi stessi poichè è noioso e soggetto a errori.

http://urlrewriter.net/

Il codice aggiornato inoltre è inviato sotto.
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 vuoto (mittente dell'oggetto, EventArgs e)
    {
        RewriteUrl ();
    }

    DataTable pubblico GetVanityLinks ()
    {
        dstVanityLinks = posizione di segnale minimo di gruppo di dati;
        dtblVanityLinks = posizione di segnale minimo di DataTable;

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

        se (posizione di segnale minimo del == dei dtblVanityLinks)
        {
            dstVanityLinks = nuovo gruppo di dati ();
            dstVanityLinks.ReadXml (Server.MapPath (“VanityURLRedirects.xml„));
            dtblVanityLinks = dstVanityLinks.Tables [0];
            Context.Cache.Insert (“vanitylinks„, dtblVanityLinks, nuovo CacheDependency (Server.MapPath (“VanityURLRedirects.xml„)));
        }

        dtblVanityLinks di ritorno;
    }

    pubblico RewriteUrl vuoto ()
    {
        dtblVanityLinks = posizione di segnale minimo di DataTable;
        strThisUrl = posizione di segnale minimo della stringa;
        strSelect = posizione di segnale minimo della stringa;
        arrMatches = posizione di segnale minimo di DataRow [];
        strRedirectLink = posizione di segnale minimo della stringa;

        dtblVanityLinks = GetVanityLinks ();

        strThisUrl = Request.Path.ToLower ();

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

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

            Context.RewritePath (strRedirectLink);
        }
    }
Altre soluzioni  
 
programming4us programming4us