簡體   English   中英

IIS URL重寫規則使用條件

[英]IIS URL rewrite rule using conditions

我在web.config文件中配置了以下URL重寫規則:

<rule name="Test Rule" stopProcessing="true">
  <match url="^$" />
  <conditions>
    <add input="{QUERY_STRING}" pattern="^(item=1|all|none|first).*$" />
  </conditions>
  <action type="Rewrite" url="/newsite/test.asp?{C:0}" />
</rule>     

以下源URL符合預期。

http://domainname?item=1&param1=x%param2=y

但是,重寫的URL在其查詢字符串中包含param1和param2。 {C:0}不應該僅轉換為正則表達式組中匹配的內容,即(item = 1 | all | none | first),而不轉換為之后的任何內容嗎?

重寫捕獲( )之后的所有內容的原因是因為{C:0}捕獲了整個匹配,而不僅僅是整個匹配。 由於您只想捕獲( ) (捕獲組1)中的內容,因此可以使用:

{C:1}

另一個示例可能是:

^(item=1|all|none|first)/(abc).*$

因此,例如僅捕獲abc (捕獲組2):

{C:2}

暫無
暫無

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

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