我想在我的asp.net多語言網站中使用帶規則部分的Web.config重寫URL。如何在多語言的ASP.NET網站中重寫URL
我有這樣的URL: http://example.com/lang/en/index.html
,http://example.com/lang/fr/index.html
等
我需要刪除lang
和.html
擴展和重寫URL到: http://example.com/en/index
,http://example.com/fr/index
我的web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="RewriteHTML">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.html" />
</rule>
<rule name="Rewrite friendly URLs to phsyical paths">
<match url="^(.*)$" />
<action type="Rewrite" url="lang/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
所以如果我去'http://example.com/en/index'我需要打開此頁:'http://example.com/lang/en/index.html'。
如何實現這一目標?
我想如果我打開http://example.com/en/index - 「您正在查找的資源已被刪除,名稱已更改,或者暫時不可用」 –
會根據需要更改地址嗎?我不知道在哪裏example.com/en/index重定向我可以幫助你(和你要求的)是將example.com/lang/en/index改寫爲example.com/en/index –
不,它不會。這個路徑:「/lang/en/index.html」它是物理文件夾和文件路徑。我只需要隱藏'lang'和'.html'。所以如果我去'http://example.com/en/index'它應該打開這個'http://example.com/lang/en/index.html' –