IIS10下使用url重寫模塊(rewrite)完成:http 跳轉 https 、不帶www 跳轉到 www,並排除指定域名,以及“若要安裝iis URL重新模塊2,需要iis7.2版或更高版本”問題的解決


主要解決 http跳轉問題,然后順道解決下 不帶www的域名跳轉到www的域名下。

例如 http://PrintY.com 跳轉到 https://www.PrintY.com, https://PrintY.com 跳轉到 https://www.PrintY.com

當然還有一個問題,就是IIS綁定了多域名,指定域名不想讓跳轉,例如還綁定了 admin.PrintY.com ,那么這個域名就不想讓它自動跳轉。

我這里用的是rewrite完成URL的重新來實現的,服務器: Windows server 2019 、IIS10

1、下載rewrite_x64_zh-CN.msi

我用的是 rewrite 2,是以前下載的,就湊合用了,如果安裝過程中提示:解決“若要安裝iis URL重新模塊2,需要iis7.2版或更高版本。”這個問題,解決方法如下:

  1、【Win+R】大凱運行框,然后輸入【regedit】確定打開注冊表;

  2、找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp (也可以復制到路徑上)

  3、選中以后,找到名稱為“MajorVersion”的節點(如果有兩個則選中第一個)

   4、右鍵“修改”

 將“a”改成“9”

  5、重新安裝rewrite,這個時候應該可以了,安裝完畢以后,記得把值該回來。

2、配置url重寫規則

右鍵“打開”->選擇最后邊“操作“下的的“添加規則”->“空白規則”,然后“確定”

 模式:(.*)    ,然后展開“條件”

條件輸入:{HTTPS}    模式:^OFF$  ,然后繼續往下滑動,繼續填寫

 

重定向URL:https://{HTTP_HOST}/{R:1}    重定向類型:已找到(302) 或 參閱其它(303)

然后點擊“應用”就行了,這塊我說下,現在這么配置有個問題,例如:http://PrintY.com 會自動跳轉到  https://PrintY.com,所以這塊要改成:https://www.PrintY.com/{R:1} ,改成這樣,無論是否帶www都會跳轉到wwww.上面!

接下來還有一個問題,那就是排除其它不想跳轉的域名,這個到“添加條件”那一步,再額外添加一個條件:

條件輸入:{HTTP_HOST}      模式:^要排除的域名$   例如:admin.PrintY.com

注意下:這塊 “檢查輸入字符串是否:” 選擇 “與模式不匹配” !

 

---------------------------------- 這里提供另外一種方式實現:不帶www跳轉到帶www的域名 ----------------------------------

 訪問:https://htaccess.iapolo.com/#a_WWW ,生成需要的代碼,然后在URL重寫模塊中導入這個規則即可。

 這里是web.config生成的代碼,實在不想操作,復制下也行。

 1 <rewrite>
 2             <rules>
 3                 <clear />
 4                 <rule name="http to  https" stopProcessing="true">
 5                     <match url="(.*)" />
 6                     <conditions>
 7                         <add input="{HTTPS}" pattern="^OFF$" />
 8                         <add input="{HTTP_HOST}" pattern="^admin.printy.net$" negate="true" />
 9                     </conditions>
10                     <action type="Redirect" url="https://www.printy.net/{R:1}" redirectType="Found" />
11                 </rule>
12                 <rule name="已導入的規則 1" stopProcessing="true">
13                     <match url="^(.*)" ignoreCase="false" />
14                     <conditions logicalGrouping="MatchAll">
15                         <add input="{HTTP_HOST}" pattern="^(printy\.net)(:80)?" />
16                     </conditions>
17                     <action type="Redirect" url="https://www.printy.net/{R:1}" redirectType="Permanent" />
18                 </rule>
19             </rules>
20         </rewrite>

 


免責聲明!

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



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