2010-07-27 11 views
0

Je viens de commencer à utiliser URLRewriter.net avec mon blog et j'ai un problème avec l'obtention des valeurs de chaîne de requête. J'ai une règle fixant comme:Pourquoi URLRewriter.NET n'obtient pas les valeurs de chaîne de requête?

<rewrite url="~/blog.aspx(\?.+)?$" 
    to="~/hiddenFolder/blog.aspx?mode=default&amp;$2"/> 

Mais quand je tente d'accéder /blog.aspx?page=1 le paramètre de page ne sont pas transmises. D'autres paramètres fonctionnent très bien et il n'y a pas de conflits dans les règles de réécriture.

Répondre

2

Je pense que le problème est que 2 $ est hors de portée car vous n'avez qu'un seul groupe dans votre RegEx. Essayez 1 $.

EDIT

En outre, il se pourrait que la chaîne de requête est ajouté à un autre »? Vous devez donc le déplacer hors des parenthèses.

Vous aurez également besoin d'un groupe supplémentaire pour que la règle corresponde à la notre sans le '?'. Note: nous sommes de retour à 2 $ dans le résultat maintenant :)

<rewrite url="~/blog.aspx(\?(.+)?)?$" 
    to="~/hiddenFolder/blog.aspx?mode=default&amp;$2"/> 
+0

J'ai déjà essayé avec $ 1 ou seulement (\?. +)? mais ne fonctionne pas comme suggéré ici: http://urlrewriter.net/index.php/support/using –

+0

J'ai essayé avec \? (. +)? $, cela fonctionne mais cette fois blog.aspx ne fonctionne pas sans pour autant ? –

+1

Je dois vraiment apprendre cette putain de regex: D. Je vous remercie. –