2016-11-07 95 views
0

我目前的網址是:mysite.com/datasheet/100-DE-xmas2016-6網址重寫 「 - 」 符號劃分參數

在web.config中:

<rule name="myrule"> 
    <match url="^datasheet/([_0-9a-z-]+)-([_0-9a-z-]+)-([_0-9a-z-]+)" /> 
    <action type="Rewrite" url="ajax/datasheet.aspx?shop={R:1}&amp;language={R:2}&amp;product={R:3}" /> 
</rule> 

會不重寫

mysite.com/ajax/datasheet.aspx?shop_id=100 &語言= DE &產品= xmas2016-6

爲什麼? 如何使產品「xmas2016-6」可以工作? 列表「mysite.com/datasheet/100-DE-xmas20166」將起作用。但我真的很想用產品作爲「xmas2016-6」(在正則表達式中設置爲[_0-9a-z-],但它像忽略產品參數中的「 - 」符號或什麼?)

回答

0

此規則會爲你工作:

<rule name="myrule"> 
    <match url="^datasheet/([_0-9a-z]+)\-([_0-9A-Z]+)\-([_a-z]+[0-9]{4})([0-9]{1})$" /> 
    <action type="Rewrite" url="/ajax/datasheet.aspx?shop={R:1}&amp;language={R:2}&amp;product={R:3}-{R:4}" /> 
</rule> 

正則表達式^datasheet/([_0-9a-z]+)\-([_0-9A-Z]+)\-([_a-z]+[0-9]{4})([0-9]{1})$被分裂datasheet/100-DE-xmas20166分爲四組:

  • {R:0} datasheet/100-DE-xmas20166
  • {R:1} 100
  • {R:2} DE
  • {R:3} xmas2016
  • {R:4} 6