2011-10-24 294 views
1

如何將問號(?)後的所有內容重寫爲一個參數?IIS 7 URL重寫

例如,我有一個網址爲:第一個問號,我們有另一個在查詢字符串後http://www.example.com?abcdefg/test/module?wiating4request

通知。我基本上需要張貼到該網址,我不能修改網址,所以我需要做的是提供什麼。

我看到了類似的東西在這裏:How can I use mod_rewrite to remove everything after the ? (question mark) in a URL?

請記住,這是IIS 7

任何想法?

回答

1

如果您只想匹配URL,並且只有一個問號太多,就可以使用重寫規則來做到這一點,就像您的示例一樣。如果你想匹配太多的問號,我認爲你需要爲鏈接的文章中詳細恢復到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>