2014-09-25 48 views
1

如何將HTTPS安裝到「登錄頁面子目錄」?試圖安裝,但沒有奏效。由於主站點沒有任何問題,所以我對將HTTPS安裝到主目錄猶豫不決,只有登錄頁面需要HTTPS。 TIA ...如何在ColdFusion中創建子目錄HTTPS?

+0

這是不是在網絡服務器級完成?如果是這樣,您應該爲您正在使用的網絡服務器添加一個標籤。 – 2014-09-25 15:32:06

+1

我相信現在推薦的方法是完全切換到HTTPS(谷歌正在討論在搜索排名中通過HTTP來支持HTTPS站點)。如果您有一個值得保護的網站,則值得使用HTTPS進行加密。 – 2014-09-25 17:35:45

回答

1

在你的Application.cfc增加一個功能imposeHttps()到onRequestStart

<cffunction name="onRequestStart" returnType="boolean" output="false"> 


    <cfset imposeHttps() /> 

    <!--- some of your other code ---> 


</cffunction> 

和私營imposeHttps()

<cffunction name="imposeHttps" access="private" output="false" returntype="void"> 

    <cfif CGI.REQUEST_METHOD IS NOT "GET"> 
     <cfreturn /> 
    </cfif> 

    <cfset var patterns = [ 
     "^/foo/", 
     "^/bar/", 
     "^/etc/", 
     "^/login.cfm", 
     "^/foo_secure.cfm", 
     "^/some_secure.cfm" 
    ] /> 

    <cfif REFindNoCase("(" & ArrayToList(patterns, ")|(") & ")", CGI.SCRIPT_NAME)> 
     <cfif !CGI.SERVER_PORT_SECURE> 
      <cflocation url="#"https://" & CGI.SERVER_NAME & CGI.SCRIPT_NAME & (CGI.QUERY_STRING EQ "" ? "" : ("?" & CGI.QUERY_STRING))#" addtoken="No">    
     </cfif> 
    </cfif> 

</cffunction> 

調用子文件夾/富,/酒吧,在/ etc將通過https強制執行,並且調用文件login.cfm,foo_secure.cfm和some_secure.cfm將通過cflocation強制執行。

+0

非常感謝TechMark2K – st041154 2014-10-03 14:21:30