10
votes

IIS 7.5 avec URL Rewrite Module Doubles QueryString paramètres sur le post-plan

J'utilise IIS 7.5 sur Windows 7 RC. J'utilise le module de réécriture URL IIS pour réécrire les URL.

Tout semble fonctionner bien, jusqu'à ce que j'effectue un message en cliquant sur un bouton. Il ajoute ensuite les paramètres de QueryString à mon URL réécrit, comme celui-ci:

URL réécrit, comme il apparaît dans le navigateur: http: // localhost / fr / Produit / 1239 / Gary + Fisher + HKek + Mountain + vélo

sans vérification d'URL Réécriture de l'URL est:

http: //Localhost/product.aspx? Lang = EN & ID = 1239 & Titre = Gary + Fisher + HKek + Mountain + Bike < P> Lorsque je clique sur un bouton pour effectuer un potage, l'URL passe à ceci:

http: // localhost / fr / Produit / 1239 / Gary + Fisher + HKek + Mountain + Vélo? Lang = EN & ID = 1239 & Titre = Gary + Fisher + Hkek + Mountain + Vélo

et lorsque l'URL est réécrite, tous les paramètres de QueryString sont doublés - donc lorsque je veux obtenir la langue actuelle en faisant cela: xxx

La valeur que je récupère est "EN, EN".

est quelqu'un d'autre ayant ces problèmes?

: Réécrire les règles de web.config xxx


2 commentaires

Pouvez-vous poster votre règle de réécriture? Il suffit de poster ce qui est dans le web.config: ...


Mis à jour avec une règle de réécriture et une règle de redirection pour les pages du produit.


3 Réponses :


11
votes

Ajouter l'appendQUeryString = "False" Attribut à l'élément d'action de la règle de réécriture également.

J'espère que cela aide.


0 commentaires

0
votes

Il s'agit d'une fonctionnalité de sécurité du module de réécriture IIS.

Je préfère personnellement la réécriture ISAPI car il est beaucoup mieux, plus simple d'écrire des règles et a plus de fonctionnalités.

a également trouvé sous la charge modérée à élevée (plus de 100 connexions à un site Web) que les cours de module IIS réécritent le pool d'applications à la crash et à la frai et au nouveau processus.


1 commentaires

Bruce, je viens de laisser tomber l'Urrrewritting dll parce que cela m'a forcé à utiliser App_pool en mode classique. Je pensais que l'intégrée intégrée d'IIS 7 serait meilleure et plus optimisée. Suggérez-vous autrement? S'il vous plaît laissez-moi savoir .. je suis inquiet.



14
votes

J'ai pu résoudre le problème en ajoutant

Form.Action = Request.RawUrl;


2 commentaires

Hey Ryan, je me suis traité avec l'appendrerystring pendant une heure sans chance. Mais votre suggestion a fonctionné! Merci


Oui, ce problème est effectivement résolu en modifiant l'action de formulaire. Vous pouvez créer un adaptateur de contrôle personnalisé afin que le changement s'applique à toutes les formulaires sur le site. Scott Gu a un guide au bas de ce message: link