2009-07-11 10 views
0

Je dois récupérer certaines anciennes URL de mon site Web et rediriger vers les nouvelles, car elles sont déjà indexées et nous ne voulons pas perdre de pertinence après le changement. L'ancienne URL est en fait très moche et pour une raison quelconque, tout ce que j'essaie de faire pour la réécrire ne fonctionne pas. Ici, il est:Mod_rewrite - comment 301 rediriger une ancienne URL vers une nouvelle

http://www.mywebsite.com/ExibeCurso.asp?Comando=TreinamentoGeral&codCurso=136&Titulo=Como%20Estruturar%20um%20Sistema%20Gerencial%20de%20Controles%20Organizacionais,13 

Fondamentalement, je dois le traduire en quelque chose comme:

http://www.mywebsite.com/curso/136 

De l'ancienne URL que je dois vérifier si l'utilisateur a tapé « ExibeCurso.asp »; alors je sais que je dois l'envoyer ici:/curso. Je dois aussi saisir l'entier qui se trouvait dans le paramètre querystring "codCurso" (136). Quelle est l'expression régulière que je dois utiliser pour cela? J'utilise ISAPI_Rewrite 3, qui implémente fondamentalement htaccess sur IIS, donc il ne devrait y avoir aucune différence en termes de syntaxe. Merci.

Répondre

1

Essayez cette règle:

RewriteCond %{QUERY_STRING} ^([^&]*&)*codCurso=([0-9]+)(&.*)?$ 
RewriteRule ^/ExibeCurso\.asp$ /curso/%2? [L,R=301] 

Mais je ne suis pas sûr que ISAPI Rewrite exige le motif de commencer par une barre oblique.

+0

Salut, merci, j'ai réussi à résoudre le problème avant de voir votre message et c'était très semblable à votre réponse. Merci beaucoup! En passant, je suis toujours confondu avec RegEx. Qu'est-ce que ça fait ([^ &] * &) *? Dire au système de choisir autre chose que & & puis obtenir le & avant le paramètre querystring codCurso? Merci. –

+0

hum, je pense que ISAPI Rewrite fonctionne exactement comme ça ... Abraços. –

0

Du haut de ma tête, quelque chose comme cela devrait fonctionner:

RewriteRule ^ExibeCurso.asp(.*)$ http://www.mywebsite.com/curso/$1 [L,R=301] 

Ce serait au moins envoyer le trafic vers/curso/avec tous les paramètres ci-joints. Peut-être que c'est mieux de le traiter à partir de là.

Questions connexes