2009-07-11 26 views
0

私のウェブサイトの古いURLを取得し、新しいURLに301リダイレクトする必要があります。既にインデックスが設定されており、関連性を失いたくないからです変更後。実際には古いURLは非常に醜いので、何らかの理由でそれを書き直そうとするすべてが機能しません。ここでは、次のとおりです。基本的にMod_rewrite - 古いURLを新しいURLにリダイレクトする方法

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

、私のような何かにそれを翻訳する必要があります:私は、ユーザーが「ExibeCurso.asp」を入力したかどうかを確認する必要があり、古いURLから

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

。それから私は彼をここに送る必要があることを知っている:/ curso。私はまた、クエリ文字列のパラメータ "codCurso"(136)にあった整数を取得する必要があります。このために使用しなければならない正規表現は何ですか?私はIIS上でhtaccessを基本的に実装するISAPI_Rewrite 3を使用しているので、構文上の違いはありません。ありがとう。私の頭の上オフ

答えて

1

は、この規則試してみてください:

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

をしかし、私はISAPI書き換えがスラッシュで開始するパターンを必要とするかどうかはわかりません。

+0

こんにちは、ありがとう、私はあなたの記事を見る前に問題を解決することができた、それはあなたの答えに非常によく似ていた。どうもありがとう!ところで、私はいつもRegExと混同しています。これは何ですか([^&] *&)*? &をつけてcodCursoクエリ文字列の前に&をつけることをシステムに教える?ありがとう。 –

+0

ハム、私はISAPIリライトがこれとまったく同じように動作すると思います...Abraços。 –

0

、このような何かが動作するはずです:

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

少なくとも接続されているすべてのパラメータを使用して//cursoにトラフィックを送信します。おそらくそれをそこから処理するのが最善でしょう。

関連する問題