2015-03-07 4 views
1

Я хочу переписать URL как:IIS UrlRewrite с дополнительными параметрами

/categories/optional-sub-cat/product 

или

/categories/optional-sub-cat/optional-2nd-sub-cat/product 

Как я должен написать регулярное выражение для включать в себя дополнительные параметры?

<rule name="Products" enabled="true" stopProcessing="true"> 
      <match url="/(.+)/optional-sub-cat/optional-2nd-sub-cat/product" /> 
      <action type="Rewrite" url="products.aspx?cat={R:1}&amp;sub=..." /> 
     </rule> 

ответ

2

Я не проверял это, но что-то, как это должно работать ([^ /] в основном говорит сопрягать все, кроме /, так что первый. + Не съедают все матчи и производить его в R1):

<rule name="Products" enabled="true" stopProcessing="true"> 
     <match url="/([^/]+)/([^/]*/)?([^/]*/)?product" /> 
     <action type="Rewrite" url="products.aspx?cat={R:1}&amp;sub1={R:2}&amp;sub2={R:2}" /> 
    </rule> 
+0

позвольте мне проверить его;) –

+0

она не работает, когда я опускаю необязательный параметр –

+0

после некоторого googleing я узнал, что ваш ответ просто отсутствуют вопросительные знаки после того, как круглые скобки, чтобы сделать их необязательные –

Смежные вопросы