[英]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
參考:
[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=([^=&]+)$" />
</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.