URL Rewrite
背景
URL Rewrite 是由 IIS 團隊所開發(目前版本為 2.0),在 Web 伺服器層執行 URL Rewriting 的擴充元件,透過 URL Rewrite 模組,不論是靜態或動態的網頁,都可以被轉換成親民的 URL,而且對內部而言它也不會受到外部 URL 的影響,URL Rewrite 會自動將連入要求的 URL 轉換成程式可讀的內部 URL,以讓程式可以保持正常執行。
參數說明
<rule name="Canonical Host Name" stopprocessing="true">
<match url="(.*)">
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^192.168.1.1$">
<add input="{HTTP_HOST}" pattern="^example\.com$">
<add input="{HTTP_HOST}" negate="true" pattern="^www\.example\.com$">
</add></add></add></conditions>
<action type="Redirect" url="http://www.example.com/{R:1}">
</action>
</match>
</rule>
上面的規則會把 http://www.example.com/Examples/index.html 或是 http://www.example.com/Examples/example-123.html 的網址替換成 output/Examples/index.html 或是 output/Examples/example-123.html
參數 |
值 |
Match URL |
Requested URL |
Matches the pattern |
Using |
Regular Expression |
Pattern |
^article/([0-9]+)/([_0-9a-z-]+) |
Action |
Action Type |
Rewrite |
Rewrite URL |
Rewrite.aspx?id={R:1}&title={R:2} |
強制轉向到HTTPS
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found"
url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>