2011-12-01 13 views
0
私はこのルールを記述

のURL書き換え:リダイレクション通過クエリパラメータ

http://localhost/en/test?id=tool-37 

http://localhost/en/tool/37 

にリダイレクトすることができますどのようにIIS 7.5で

が、それは動作しません

<rule name="Tool-Diseases" stopProcessing="true"> 
    <match url="(.+)/test.+id=([0-9]+)" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
    <action type="Redirect" url="{R:1}/tool/{R:2}" appendQueryString="true" /> 
</rule> 

ありがとうございました

答えて

0

URLとQueryStringは、IIS Rewrite Moduleで個別に処理されます。

要求がこのURLのために作られた場合、例えば:http://www.mysite.com/content/default.aspx?tabid=2&subtabid=3、及び書き換え規則は、サイトレベルで定義された:

  • ルールパターンとしてURL文字列、コンテンツ/ Default.aspxのを取得します入力
  • QUERY_STRINGサーバー変数には、tabid = 2 &のsubtabid = 3が含まれています。
  • HTTP_HOSTサーバー変数には、www.mysite.comが含まれています。
  • SERVER_PORTサーバー変数には80が含まれます。
  • SERVER_PORT_SECUREサーバー変数には0が含まれ、HTTPSにはOFFが含まれます。
  • REQUEST_URIサーバー変数が/default.aspx?tabid=2 & subtabid = 3

が含まれているあなたは、IISのリライトの設定で「サーバー変数」セクションで、あなたのクエリ文字列にマッチする正規表現を入力することができます。