默認IIS是不提供URL重寫模塊的。
請注意,不要將IIS默認的HTTP重定向理解為url重寫。
安裝url重寫模塊
url重寫,是要從iis的應用市場下載url重寫組件才可以的。
URL重寫工具的下載地址: 64位版本 32位版本
設置規則
比如我樣實現訪問www.demo.com/1.aspx
自動跳到新地址www.demo.com/1
規則設置如下:
在配置了url重寫組件的IIS中,可以直接操作web.config
如下圖:
代碼:
<system.webServer>
<rewrite>
<rules>
<rule name="test" stopProcessing="true">
<match url="shop/(.*).aspx" />
<action type="Redirect" url="/shop/{R:1}" />
<conditions>
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
動態跳轉實例
那如果要加動態頁面怎么辦???莫慌,莫慌,看下圖:
原鏈接:http://en.amusechina.cn/en/ProductDetail-2.0.aspx?proId=1159&cateId=99
現鏈接:http://en.amusechina.cn/product1159/99.html
三個實例
1、http重定向至https
填寫內容 ->
名稱:隨意
模式:(.*) ;代表全部,任意,無論是否字符都匹配
條件:{HTTPS};https,模式^OFF$,代表https關閉,也就是沒有;;;{HTTP_HOST}:填寫要匹配的域名,不能其他的域名訪問到也重定向至這個https,邏輯分組全部匹配,任意匹配是滿足一個條件即可進行下面處理
操作類型:重定向
重定向URL:https://www.example.com/{R:1}
結果相當於 訪問 http://www.example.com/....... 重定向至 https://www.example.com/.......
2、重寫服務,一般使用為nodejs服務需要實現路徑轉為根節點訪問,這里不寫條件,一般條件使用為上面的兩種,這里為了截圖方便,不予展示
模式:^blog/(.*)
類型:重寫
目標URL:http://127.0.0.1:3001/{R:1}
結果:訪問:http://www.example.com/blog/index.html --> http://127.0.0.1:3001/inde.html
當然這個127.0.0.1指的是服務器的本地,而不是訪問者電腦本地,這樣使用,可以防止開發太多端口,引起安全問題
3、重寫服務-文件
模式:(.*)phpf$:代表訪問的文件以phpf結尾
類型:重寫
目標URL:http://www.example.com/{R:1}.php
結果:訪問:http://www.example.com/dir/loginphpf --> http://www.example.com/dir/login.php
這樣當后端有其他語言或者不想在前端顯示文件后綴時,可以使用這種方式來進行隱藏,phpf可以自己隨意更改