Question

Un peu en retard, mais je viens de mettre de la version ISAPI Rewrite 2 à la version 3.

Je vais avoir des problèmes avec des règles dans le style suivant:

RewriteRule ^/seo-friendly/(\?(.*))? /test/index.cfm?page=home&$2 

Ici, je veux tous les paramètres de chaîne de requête supplémentaire transmis à l'URL réécrite.

a bien fonctionné sous IR2 mais ne passe pas les paramètres supplémentaires dans IR3. Je possède les utilitaires testeur Regex .exe de chaque version alors j'ai essayé les.

Si j'entre / seo-friendly / bonjour = monde , le testeur de regex IR2 dit $ 1: bonjour = monde et $ 2: bonjour = monde Ce qui est parfait.

Mais dit de IR3 $ 0:. / Seo-friendly / et $ 1 et $ 2 sont vides

On dirait que je ne peux pas accéder à des variables de chaîne de requête.

J'ai trouvé ce drapeau mentionné dans la documentation:

  

O (Normaliser)

     

Normalise chaîne avant le traitement.   comprend la suppression de la normalisation d'un   URL-encodage, des caractères illégaux, etc.   En outre, IIS normalisation d'un URI   supprime complètement la chaîne de requête. Alors,   la normalisation ne doit pas être utilisé si   chaîne de requête est nécessaire

Mais je ne l'ai pas mis ce drapeau contre mes règles. Y at-il une règle globale que je peux mettre à mettre fin à cette (apparente) de normalisation?

Était-ce utile?

La solution

Si ISAPI Rewrite fonctionne à peu près la même que celle mod_rewrite d'Apache, vous devriez juste besoin de mettre le drapeau QSA:

RewriteRule ^/seo-friendly/$ /test/index.cfm?page=home [QSA]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top