2015-09-23 32 views
0

有沒有辦法使用APPCMD等將所有http:80流量重定向到https:443?例如一個進入的請求:HTTP到HTTPS通過命令行/腳本重定向規則?

http://www.mywebsite.com/some/long/string 

重定向到:

https://www.mywebsite.com/ 

我知道如何做到這一點的圖形用戶界面,但我似乎無法弄清楚如何通過腳本來完成。對此,我真的非常感激!

回答

1

一旦從here安裝URL重寫你就可以運行下面的APPCMD命令,將設置爲您的網站(在這種情況下,「默認Web站點」):

appcmd.exe set config "Default Web Site" -section:system.webServer/rewrite/rules /+"[name='Redirect to HTTPS']" 
appcmd.exe set config "Default Web Site" -section:system.webServer/rewrite/rules /"[name='Redirect to HTTPS'].match.url:"(.*)"" 
appcmd.exe set config "Default Web Site" -section:system.webServer/rewrite/rules /+"[name='Redirect to HTTPS'].conditions.[input='{HTTPS}',pattern='Off']" 
appcmd.exe set config "Default Web Site" -section:system.webServer/rewrite/rules /"[name='Redirect to HTTPS'].action.type:"Redirect"" /"[name='Redirect to HTTPS'].action.url:"https://{HTTP_HOST}/{R:1}"" 

還以爲提你可以在你的內容中有一個複製的web.config文件,這樣你永遠不需要真正運行這樣的命令行,因爲該配置將成爲簡化部署的站點的一部分。

而只是爲了完整性,將產生以下的web.config條目:

<rule name="Redirect to https"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="Off" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
</rule> 
+0

非常感謝你 - 在APPCMD工作。我只想補充一點,如果你打算在PowerShell中執行此操作,則需要將內部雙引號更改爲單引號。對此,我真的非常感激! –