2012-11-02 84 views
0

我遇到麻煩的URL重寫,網址~/global/products/en/page?sdfsdf=sgdfg完美工作,沒有查詢字符串,但不會使用它。任何人都可以幫忙嗎?移動網站~/global/products/en/m/page使用相同的規則,這就是爲什麼中間有[a-zA-Z0-9/_-]*?的原因。規則6是我的嘗試來解決它,但我一般在正則表達式很糟糕,所以任何幫助將不勝感激。Url Rewrite Regex

<add name="rule1" 
    virtualUrl="^~/[a-z-]*/([a-zA-Z0-9/_-]*?[^\.])$" 
    rewriteUrlParameter="ExcludeFromClientQueryString" 
    destinationUrl="~/country/$1.aspx" 
    ignoreCase="true" /> 
<add name="rule2" 
    virtualUrl="^~/[a-z-]*/([a-zA-Z0-9/_-]*?)(.+)\?(.*)$" 
    rewriteUrlParameter="ExcludeFromClientQueryString"  
    destinationUrl="~/country/$1.aspx?$2" 
    ignoreCase="true"/> 

回答

2

變化ExcludeFromClientQueryStringIncludeQueryStringForRewrite

像這樣: -

<add name="rule1" 
    virtualUrl="^~/[a-z-]*/([a-zA-Z0-9/_-]*?[^\.])$"   
    rewriteUrlParameter="IncludeQueryStringForRewrite" 
    destinationUrl="~/country/$1.aspx" 
    ignoreCase="true" /> 
<add name="rule2" 
    virtualUrl="^~/[a-z-]*/([a-zA-Z0-9/_-]*?)(.+)\?(.*)$" 
    rewriteUrlParameter="IncludeQueryStringForRewrite" 
    destinationUrl="~/country/$1.aspx?$2" 
    ignoreCase="true"/> 
+0

** + 1 **提高可讀性了。 :) – ghoti