2010-12-01 14 views
0

Je viens de changer la structure des URL de page d'un de mes sites en utilisant la réécriture d'URL et je dois rediriger l'ancienne structure vers la nouvelle (pour traiter les anciens liens indexés par Google). Mon problème est que je veux rediriger vers une URL réécrite, pas une URL réelle et je ne peux pas trouver un moyen de le faire.redirections ASP.Net 301 et réécriture d'URL

Avant les changements, j'ai eu les urls suivantes:

RewriteRule^produits/([^ _ \ r \ n //] *)/([^ _ \ r \ n //] *)/$ /products.aspx?cat=$1 & subcat = 2 $ [NC, l]

Après les changements, je donne les résultats suivants:

RewriteRule^produits - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/$ /products.aspx?cat=$1 & subcat = $ 2 [NC, L]

Ce que je veux faire maintenant est de publier une redirection 301 pour urls t chapeau match

^produits/([^ _ \ r \ n //] *)/([^ _ \ r \ n //] *)/$ à^produits - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/$,

-à-dire, d'avoir la règle suivante:

RewriteRule^produits - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/$ produits - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)/[NC, l]

la règle ci-dessus produit l'erreur suivante:

"la page ne réoriente correctement"

Existe-t-il un moyen de le faire avec .Net ou en utilisant les règles de réécriture d'URL?

Toute aide serait vivement appréciée.

+0

Quelle version d'IIS utilisez-vous? – CodeMonkey1313

+0

Sans trop regarder dans vos expressions, le message que vous obtenez indique probablement une boucle de redirection, c'est-à-dire se redirigeant indéfiniment vers lui-même. –

+0

J'utilise Helicon ISAPI 3.0 et IIS 6. Je suppose que le problème est la redirection vers un autre chemin virtuel, pas un physique. – user501223

Répondre

0

Ok, je fixe le problème en utilisant la règle suivante:

RewriteRule^produits - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *)//redir.aspx?url=/products-$1-$2/ $ [NC, l]

Qu'est-ce que la page ne redir.aspx est d'écrire un code 301 à l'en-tête et le transfert vers la nouvelle URL qui est passé comme un paramètre à lui. Qu'est-ce que vous utilisez pour la réécriture?