En consultant les statistiques de mon site, j'ai constaté que la grande majorité du trafic provient de liens tiers vers des pages ASP classiques qui n'existent pas depuis quelques années. à présent.Utilisation de pages regex .asp d'Intelligencia UrlRewriter sur une page d'attente
j'ai décidé que l'ajout d'un groupe de urlMappings au web.config était pas une bonne idée, donc j'ajouté Intelligencia UrlRewrite et essayé d'ajouter une règle, comme suit:
<rewriter>
<redirect url="^/(.*).asp$" to="~/pagenotfound.aspx?page=$1" />
</rewriter>
La règle fonctionne, mais il récupère n'importe quelle URL qui se termine par .asp = tel que /pagenotfound.aspx?page=someurl.asp.
Oops :)
Je ne suis pas bien informé sur les expressions régulières, comment puis-je à ignorer « .asp » qui suit le caractère de point d'interrogation?
Dav, Merci pour la réponse. Bien que cela fonctionne, cela signifie qu'il ne récupère plus les pages .asp avec une chaîne de requête qui est en quelque sorte en train de vaincre mon but - J'ai besoin de détecter toute légende .asp url et rediriger, sans capturer .asp qui se trouve dans une requête chaîne. Thanksl –
Heya Richard - vous devriez être capable d'étendre l'URL regex pour ajouter le potentiel pour une chaîne de requête après l'extension .asp - J'ai édité mon exemple ci-dessus pour quelque chose que je * crois * va fonctionner (pas 100% Bien sûr, si je clouais la syntaxe à ce sujet si). – Amber
J'ai également ajouté la barre oblique inverse qui devrait être devant cette première période (pour .asp) - sinon, elle l'interprétera comme une période regex régulière qui correspond à n'importe quel caractère (au lieu d'une période littérale), ce qui entraînerait ne correspond pas correctement à quelque chose comme /test.asp?asp – Amber