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


 

一、Why?

1、先來講一講為什么我們要使用url重寫這個東西

2、因為我學習的后端是nodejs,然后我發現nodejs一個非常讓人難受的事,就是它監聽端口不是80和443時,你訪問網頁需要輸入端口,這樣很不友好,比如下面這樣:

3、這樣對用戶很不友好,所以我才打算學一學url重寫,url重寫后就會變成這樣:

4、當然上面的url中的3001也可以修改成其他字母或者多層路徑,這樣就會變得好看多了

二、前置條件

  1、首先你得有個IIs服務器  ( ̄▽ ̄)/

2、先去IIS官網下載web平台安裝工具

3、當然是安裝這個工具了٩(๑❛ᴗ❛๑)۶

4、打開這個工具

5、搜索Application Request Routing Cache,或者 應用程序請求路由 ,因為有可能是英文也有可能是中午,所以當一個搜索不到時,搜索另一個語言,一定要在產品全部中搜索

6、安裝后可以一路點擊接受安裝即可

7、接下來安裝url重寫工具,直接搜索url即可,,有可能出現 url 重寫工具 或者 url rewrite 

8、和上面安裝請求路由一樣,也可以和請求路由一起添加進去,一起安裝

9、安裝完成,我們前置工作也就成功了

三、應用程序請求路由設置

1、打開IIS工具,選擇上面安裝的請求路由

2、選擇 Server Proxy Settings

3、在中間區域,選擇勾選Enable proxy,不用修改內容,當然也可以根據需求自己修改

4、點擊應用即可,完成請求路由的設置

四、url重寫設置:這邊講解參數,后面有三個寫好的例子使用

1、打開站點,選擇需要url重寫的站點

2、當安裝完成url重寫時,會出現url重寫這個工具,選擇工具,名字也有可能是英文

3、打開工具,選在右側欄第一行添加規則,打開對話框,選擇空白規則

4、輸入名稱,隨意,但是盡量能表示出重寫目標的含義

5、匹配url,請求的url(字面意思):與模式匹配(推薦),與模式不匹配;使用(匹配使用的方式):正則表達式(推薦),通配符,完全匹配;

6、模式:比如說host代表主機域名,則在這里面寫的就是host之后的正則匹配表達式,比如匹配在host/blog/,之下的都轉到nodejs搭建的服務上,則這里填寫^blog/(.*);點擊測試模式,我們填寫下面圖片內容進行測試,發現測試結果中有個{R:1},我們需要將其導向至nodejs搭建的服務,也就是重寫目標

7、忽略大小寫,自然就是字面意思,不多敘述

8、下面便是條件,按照圖片來進行填寫,這里不具體細數條件類型和規則模式填寫,后面有三個例子進行了基本講述,其余的請查看官方文檔

9、服務器變量可以不寫,操作類型可以因情況而定,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,可以減少服務器危險

停止后續規則,自然就是字面意思,一旦勾選后,匹配處理結束,將不再處理下面的其他規則

10、點擊右側欄應用即可,當應用顯示灰色時,證明有必填項沒有填寫,所以無法應用,到這里也就重寫完畢,下面是例子

五、例子

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可以自己隨意更改

 

六、尾記

1、本文記錄目的只是為了防止遺忘

2、當然url重寫不可能這么簡單的使用,我只是需求多少,研究多少,這里只是基本使用,想要更復雜的,則自己可以去官方文檔查看,研究

3、本博客可以隨意轉載,但是請在博文頂部寫上來源:

作者:SpiritLing 

地址:https://www.cnblogs.com/spirit-ling/p/8809039.html

 Tips:我的博客即將搬運同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=26fheluxu6isc

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM