簡體   English   中英

帶有參數的IIS URL重寫規則

[英]IIS URL Rewrite Rule with Params

我很難讓URL重寫規則起作用。

我想要這個網址:

http://www.mysite.com/oldpage.aspx?oldid=123

重寫為:

http://www.mysite.com/sub/newpage.aspx?newid=123

這是我所擁有的,但不起作用:

<rule name="Old2New" stopProcessing="true">
    <match url="^oldpage.aspx?oldid=([0-9]+)" />
    <action type="Rewrite" 
            url="/sub/newpage.aspx?newid={R:1}" 
            appendQueryString="true"  />
</rule>

我想念什么?

regex索引從0而不是1開始。因此您的規則應為:

<rule name="Old2New" stopProcessing="true">
    <match url="^oldpage.aspx?oldid=([0-9]+)" />
    <action type="Rewrite" 
            url="/sub/newpage.aspx?newid={R:0}" 
            appendQueryString="true"  />
</rule>

您可以在IIS7界面中輕松測試您的規則。

使用條件來捕獲查詢字符串部分{C:1},如下所示:

<rule name="My rule" stopProcessing="true">
    <match url="^oldpage\.aspx" ignoreCase="true" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{QUERY_STRING}" pattern="oldid=([0-9]+)" />
    </conditions>
    <action type="Redirect" url="/sub/newpage.aspx?newid={C:1}" appendQueryString="false" />
</rule>

經過測試和工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM