2016-11-07 2 views
0

Мой текущий URL является: mysite.com/datasheet/100-DE-xmas2016-6Url перезаписи "-" символ для разделения параметров

в 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> 

Regexp ^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
  • {Р: 2} DE
  • {Р: 3} xmas2016
  • {Р: 4} 6