排除使用IIS URL重寫模塊我試圖重寫從進來的URL /en/page.aspx到/en/page/index.aspx如何匹配的模式,但是從結果
使用正則表達式我檢查的字符串的.aspx
^.*(.aspx)$
目前在捕獲組我得到
/en/page.aspx
結束
我如何才能捕獲/zh /頁面部分?
再往下行了,我會重寫URL,如下所示:
{R:0}/index.aspx
排除使用IIS URL重寫模塊我試圖重寫從進來的URL /en/page.aspx到/en/page/index.aspx如何匹配的模式,但是從結果
使用正則表達式我檢查的字符串的.aspx
^.*(.aspx)$
目前在捕獲組我得到
/en/page.aspx
結束
我如何才能捕獲/zh /頁面部分?
再往下行了,我會重寫URL,如下所示:
{R:0}/index.aspx
要匹配而不捕獲您可以使用?:
模式,像(?:\.aspx)
。然而,以滿足您的重定向需要你可能需要使用下面的表達式:
^(.*)(\.aspx)$
這樣{R:1}
將指向正是你需要的。另外請注意,您需要轉義點,以便表達式將匹配點字符而不是其他所有點。
更改你如何捕捉匹配...
^(.*?)(\.aspx)$
當通過比賽收集走,比賽應該是以下幾點:
指數0應該是整個網址
index 1應該是/ en/page
index 2應該是.aspx
^(。*?)(\。aspx)$和^(。*)(\。aspx)$?之間的區別是什麼?特別是(。*?)做什麼? – Fixer
問號意味着,如果下一個字符與表達式的下一部分相匹配,那麼這個星號是懶惰的,並且不匹配。 – gislikonrad
'。*?'表示非貪婪,在這種情況下不起作用,因爲它後跟一個普通字符串,後面跟着'$'(表示字符串結尾)。 – shesek