主要解決 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>
