2017-03-09 13 views
1

我在這裏張貼問題和答案的網址是https://stackoverflow.com/a/42694565/6188148ASP.Net Web窗體:接受指引,瞭解IIS重寫規則

的人給予了IIS重寫激怒片段,其意思是,我不清楚。

<rule name="Rewrite language code"> 
    <match url="^([a-z]+)/([0-9a-z]+).aspx" /> 
    <action type="Rewrite" url="/{R:2}.aspx?lang={R:1}" /> 
</rule> 

只是不明白這是什麼線/{R:2}.aspx?lang={R:1}的含義是什麼{R:2}和{R:1}

如何IIS會明白,{R:2}.aspx需要與home.aspx更換應和{R:1}需要用國家代碼替換。什麼原因導致替代。

有什麼邏輯,其國名應儲存在{R:2}模板和國家代碼將被存儲在{R:1}

它在我的請求,如果有一個人熟悉這樣的規則,那麼請在這裏放一些輕。感謝

回答

0

match你的搜索模式由兩個部分組成,由圖案括號內()認可。這相當於在JavaScript中的regex

([a-z]+)([0-9a-z]+)

重寫模塊現在可以使用這兩個作爲令牌在action部分重寫的URL。因爲2位數的語言代碼是第一場比賽就被分配到{R:1},第二個是實際的頁面,使成爲第二令牌{R:2}

您可以將其與string.format函數的C#用法進行比較,其中令牌被重載的字符串值替換。

string token = "value"; 
Label1.Text = string.Format("Replace {0}.", token) 

更多信息:

https://blogs.msdn.microsoft.com/chiranth/2014/06/12/url-rewrite-part-2inbound-rules/

http://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/

https://besthostingforasp.net/url-rewrite-module-iis/

+0

很好的解釋。 –