簡體   English   中英

IIS重寫規則:我需要一個IIS URL重寫模式,該模式可以提供所需的URL

[英]IIS Rewrite Rules: I need an IIS URL Rewrite pattern which gives me required url

我需要一個IIS7 URL重寫模式,該模式可以為我提供類似www.mydomain.com/username/signup的url。

我正在IIS URL重寫中創建友好的URL模式

我的普通網址看起來像這樣

 http://www.mydoamin.com/signup.aspx?usr="username"

以及IIS中可用的選項,例如

http://www.mydoamin.com/signup/usr/username

http://www.mydoamin.com/usr/username

http://www.mydoamin.com/signup/username

但是我需要一種模式來將我的網址重寫為

 http://www.mydomain.com/username/signup.

是否可以這樣重寫網址?

只是嘗試,還沒有測試。

<rewrite>
  <rules>
    <rule name="Rewrite To Clean Url">
      <match url="^signup.aspx?user=([0-9a-zA-Z]+)" />
      <action type="Rewrite" url="{R:1}/signup" />
    </rule>
  </rules>
</rewrite>

您可以使用R:N在匹配模式中引用捕獲組,其中N是對捕獲組的引用。[1]

 <rewrite> <rules> <rule name="Rewrite to article.aspx"> <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> <action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" /> </rule> </rules> </rewrite> 

例如以這種模式:

 ^(www\\.)(.*)$ 

對於字符串:www.foo.com,反向引用的索引如下:

 {C:0} - www.foo.com {C:1} - www. {C:2} - foo.com 

參考:

[1] http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

[2] http://forums.iis.net/t/1187281.aspx?Capture+the+back+reference+in+the+content+URLs

對於www.mydomain.com/username/signup,它的工作非常完美...

            <rule name="RedirectUserFriendlyURL2" stopProcessing="true">
                <match url="^Signup\.aspx$" />
                <conditions>
                    <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
                    <add input="{QUERY_STRING}" pattern="^usr=([^=&amp;]+)$" />
                </conditions>
                <action type="Redirect" url="{C:1}/Signup" appendQueryString="false" />
            </rule>
            <rule name="RewriteUserFriendlyURL2" stopProcessing="true">
                <match url="^([^/]+)/?Signup$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="Signup.aspx?uname={R:1}" />
            </rule>

暫無
暫無

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

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