IIS進行URL重寫——實現https重定向,文件類型隱藏訪問重寫,nodejs等服務重寫等等

 

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

相關文章
相關標籤/搜索