Intelligencia.UrlRewriter
-
08-07-2019 - |
Question
J'utilise Intelligencia UrlRewriter sur un projet.
Cela fonctionne bien pour réécrire les URL saisies dans le navigateur.
Par exemple, si j'entre
http://localhost/People
Ceci est correctement réécrit en tant que:
http://localhost/People.aspx
Maintenant, le problème est que, lorsque je suis dans le code derrière, je dois accéder à l'URL conviviale, mais Request.ServerVariables semble ne disposer que de l'URL indésirable.
Est-ce que quelqu'un sait si je peux accéder de toute façon à cette URL originale et conviviale en code? Ou suis-je trop tard?
La solution
Vous avez les gars.
@Nick Allen et Pure.Krome: Merci de votre aide!
J'ai trouvé la donnée dans:
HttpContext.Current.Request.RawUrl
Si elle existe dans ServerVariables, je ne pouvais pas la voir, mais en conclusion, les données sont là-bas, je n'ai donc pas besoin de pleurer moi-même pour dormir:)
d'accord. Merci encore !!
Autres conseils
Request.PathInfo
Request.QueryString
Lequel vous utilisez dépend si vous réécrivez default.aspx? myvar
ou default.aspx / myvar
Je l'utilise et ça fait depuis .. euh .. 2 ans maintenant, je pense. (Merci gawd, IIS7 et MVC sont ici!)
De toute façon, pouvez-vous vérifier les Variables du serveur IIS pour tous de ceux-ci et dites-nous ce que vous obtenez ...- PATH_INFO
- URL
- SCRIPT_NAME
Par exemple (il s’agit d’un extrait de PATH_INFO pour une page que j’ai configurée qui exporte TOUTES les variables de la requête): -
PATH_INFO: [/admin/Miscellaneous.aspx]
et pour l'obtenir ..
Request.ServerVariables["PATH_INFO"]
Tenez-nous au courant.
Les règles de réécriture d’Intelligencia sont stockées dans le fichier web.config, qui est analysable. Vous pouvez donc parcourir les règles dans le fichier web.config pour trouver une correspondance et utiliser la valeur correspondante à partir de là
Évidemment, cela ne fonctionnerait pas pour le filtrage, mais des règles explicites telles que celle de votre exemple