2009-07-06 5 views
1

Un peu en retard, mais je viens de mettre de Isapi la version Rewrite 2 à la version 3.Isapi Rewrite mise à niveau de 2 à 3 - chaîne de requête non disponible?

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émentaires répercutés sur l'URL réécrite.

Cela a fonctionné correctement sous IR2 mais ne réussit pas à transmettre les paramètres supplémentaires dans IR3. J'ai les deux utilitaires testeur Regex .exe de chaque version, donc j'ai essayé ceux-ci. ?

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

Mais ce IR3 dit $ 0:/seo-friendly/ et $ et $ sont vides.

Il semble que je ne puisse pas accéder aux variables de chaîne de requête.

Je trouve ce drapeau mentionné dans les documents:

O (Normaliser)

Normalise chaîne avant le traitement. La normalisation inclut la suppression d'un codage d'URL , de caractères non autorisés, etc. En outre, la normalisation IIS d'un URI supprime complètement la chaîne de requête. Ainsi, la normalisation ne doit pas être utilisé si chaîne de requête est nécessaire

Mais je n'ai pas mis ce drapeau contre mes règles. Existe-t-il une règle globale que je peux définir pour arrêter cette normalisation (apparente)?

Répondre

1

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

RewriteRule ^/seo-friendly/$ /test/index.cfm?page=home [QSA] 
+0

Je ne trouve aucune mention dans leur documentation, mais ce drapeau fonctionne comme un charme . Merci un million! – stubotnik

Questions connexes