2010-10-22 14 views
0

J'ai essayé d'utiliser UrlRewriter (Intelligencia.UrlRewriter.dll) dans un projet de test.ASP.NET UrlRewriter - Comment écrire RegEx pour Root?

Ma déclaration de réécriture est aussi dans les domaines suivants:

<rewrite url="~/Sample/(.+)" to="~/Sample.aspx?Test=$1"/> 

Cette déclaration fonctionne très bien pour une URL comme:

http://localhost:4188/RewriteTest/Sample/12345 

ou, disons:

http://RewriteTest.com/Sample/12345 

Et, Je peux récupérer la valeur "12345" dans le fichier Sample.aspx comme:

Label1.Text = "Test: " + Request.QueryString["Test"]; 

Et quand je frappe le lien racine, il affiche avec succès le Default.aspx:

http://localhost:4188/RewriteTest/ ou http://RewriteTest.com/

Ce que je veux accomplir est de prendre le « échantillon » de la déclaration regex, de sorte que Je peux frapper directement http://RewriteTest.com/12345 et afficher Sample.aspx en récupérant la valeur "12345". Et, quand la racine est frappée http://RewriteTest.com/ il affichera simplement Default.aspx comme c'est maintenant.

Est-ce possible? L'instruction regex peut-elle être mise à jour pour autre chose dans ce but?

Merci,

Niyazi

Répondre

1

Si votre code d'identification va toujours être composé de 5 chiffres, alors vous auriez pu serrer la regex que:

<rewrite url="^~/([\d]{5})$" to="~/Sample.aspx?Test=$1"/> 

ou un numéro de longueur variable :

<rewrite url="^~/([\d]+)$" to="~/Sample.aspx?Test=$1"/>