2011-10-24 90 views
1

疑問符(?)の後ろのすべてを1つのパラメータとして書き換えるにはどうすればよいですか?私たちは、クエリ文字列に別のものを持っている最初の疑問符の後http://www.example.com?abcdefg/test/module?wiating4requestIIS 7 URLリライト

お知らせ:

は例えば、私はURLを持っています。私は基本的にそのURLに投稿する必要があり、私は提供されているものとする必要があるので、私はURLを変更することはできません。

私はここに似た何かを見ました:How can I use mod_rewrite to remove everything after the ? (question mark) in a URL?

が、これはIIS 7

のための任意のアイデアである点に注意してください?

答えて

1

例のように1つの疑問符が1つだけ多く一致するようにする場合は、書き換えルールでこれを行うことができます。あなたは私はあなたがリンク先の記事で説明するようcustom rewrite providerに戻す必要があるだろうと思いますあまりにも多くの疑問符の数に制限を一致させたい場合は

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Clean extra question mark from query string" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{QUERY_STRING}" pattern="^(.+?)(\?(.+))*$" /> 
        </conditions> 
        <action type="Rewrite" url="/{URL}?{C:1}&amp;{C:3}" appendQueryString="false" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

:あなたは、このルールを使用することができます。あなたは次のようなものになります:

<rule name="Clean extra question mark from query string" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="^$" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="/{URL}?{ReplaceProvider:{QUERY_STRING}}" appendQueryString="false" /> 
</rule>