1、Why?php
一、先來說一講爲何咱們要使用url重寫這個東西html
二、由於我學習的後端是nodejs,而後我發現nodejs一個很是讓人難受的事,就是它監聽端口不是80和443時,你訪問網頁須要輸入端口,這樣很不友好,好比下面這樣:前端
三、這樣對用戶很不友好,因此我纔打算學一學url重寫,url重寫後就會變成這樣:node
四、固然上面的url中的3001也能夠修改爲其餘字母或者多層路徑,這樣就會變得好看多了web
2、前置條件正則表達式
一、首先你得有個IIs服務器 ( ̄▽ ̄)/後端
二、先去IIS官網下載web平臺安裝工具安全
三、固然是安裝這個工具了٩(๑❛ᴗ❛๑)۶服務器
四、打開這個工具工具
五、搜索Application Request Routing Cache,或者 應用程序請求路由 ,由於有多是英文也有多是中午,因此當一個搜索不到時,搜索另外一個語言,必定要在產品所有中搜索
六、安裝後能夠一路點擊接受安裝便可
七、接下來安裝url重寫工具,直接搜索url便可,,有可能出現 url 重寫工具 或者 url rewrite
八、和上面安裝請求路由同樣,也能夠和請求路由一塊兒添加進去,一塊兒安裝
九、安裝完成,咱們前置工做也就成功了
3、應用程序請求路由設置
一、打開IIS工具,選擇上面安裝的請求路由
二、選擇 Server Proxy Settings
三、在中間區域,選擇勾選Enable proxy,不用修改內容,固然也能夠根據需求本身修改
四、點擊應用便可,完成請求路由的設置
4、url重寫設置:這邊講解參數,後面有三個寫好的例子使用
一、打開站點,選擇須要url重寫的站點
二、當安裝完成url重寫時,會出現url重寫這個工具,選擇工具,名字也有多是英文
三、打開工具,選在右側欄第一行添加規則,打開對話框,選擇空白規則
四、輸入名稱,隨意,可是儘可能能表示出重寫目標的含義
五、匹配url,請求的url(字面意思):與模式匹配(推薦),與模式不匹配;使用(匹配使用的方式):正則表達式(推薦),通配符,徹底匹配;
六、模式:好比說host表明主機域名,則在這裏面寫的就是host以後的正則匹配表達式,好比匹配在host/blog/,之下的都轉到nodejs搭建的服務上,則這裏填寫^blog/(.*);點擊測試模式,咱們填寫下面圖片內容進行測試,發現測試結果中有個{R:1},咱們須要將其導向至nodejs搭建的服務,也就是重寫目標
七、忽略大小寫,天然就是字面意思,很少敘述
八、下面即是條件,按照圖片來進行填寫,這裏不具體細數條件類型和規則模式填寫,後面有三個例子進行了基本講述,其他的請查看官方文檔
九、服務器變量能夠不寫,操做類型能夠因狀況而定,http站點轉向https時通常使用重定向,其他通常爲重定向
重寫URL:好比博客是在nodejs搭建的服務上,而且監聽本地3001端口時,填寫http://127.0.0.1:3001/{R:1},這個{R:1}就是上面模式匹配的字符串,其實訪問www.example.com/blog/index.html,就是至關於訪問http://127.0.0.1:3001/index.html,這樣監聽本地3001,不用開方公網3001,能夠減小服務器危險
中止後續規則,天然就是字面意思,一旦勾選後,匹配處理結束,將再也不處理下面的其餘規則
十、點擊右側欄應用便可,當應用顯示灰色時,證實有必填項沒有填寫,因此沒法應用,到這裏也就重寫完畢,下面是例子
5、例子
一、http重定向至https
填寫內容 ->
名稱:隨意
模式:(.*) ;表明所有,任意,不管是否字符都匹配
條件:{HTTPS};https,模式^OFF$,表明https關閉,也就是沒有;;;{HTTP_HOST}:填寫要匹配的域名,不能其餘的域名訪問到也重定向至這個https,邏輯分組所有匹配,任意匹配是知足一個條件便可進行下面處理
操做類型:重定向
重定向URL:https://www.example.com/{R:1}
結果至關於 訪問 http://www.example.com/....... 重定向至 https://www.example.com/.......
二、重寫服務,通常使用爲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指的是服務器的本地,而不是訪問者電腦本地,這樣使用,能夠防止開發太多端口,引發安全問題
三、重寫服務-文件
模式:(.*)phpf$:表明訪問的文件以phpf結尾
類型:重寫
目標URL:http://www.example.com/{R:1}.php
結果:訪問:http://www.example.com/dir/loginphpf --> http://www.example.com/dir/login.php
這樣當後端有其餘語言或者不想在前端顯示文件後綴時,可使用這種方式來進行隱藏,phpf能夠本身隨意更改
6、尾記
一、本文記錄目的只是爲了防止遺忘
二、固然url重寫不可能這麼簡單的使用,我只是需求多少,研究多少,這裏只是基本使用,想要更復雜的,則本身能夠去官方文檔查看,研究
三、本博客能夠隨意轉載,可是請在博文頂部寫上來源:
做者:SpiritLing
地址:https://www.cnblogs.com/spirit-ling/p/8809039.html
Tips:個人博客即將搬運同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=26fheluxu6isc