如何在ColdFusion中创建子目录HTTPS?

时间:2014-09-25 15:07:27

标签: coldfusion

如何在“登录页面子目录”中安装HTTPS?试图安装,但它没有工作。我对在主目录中安装HTTPS犹豫不决,因为主站点没有任何问题,只有登录页面需要是HTTPS。 TIA ...

2 个答案:

答案 0 :(得分:2)

如果您要将用户重定向到HTTP,则需要SSL,有免费证书并支付证书费用(您可以谷歌搜索您的选项)。

在设置SSL时:它需要通过IIS或Apache将您的站点绑定到您的证书。

以下是两篇描述每个途径的文章:

IIS 8或8.5:https://www.digicert.com/ssl-certificate-installation-microsoft-iis-8.htm

Apache:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-with-a-free-signed-ssl-certificate-on-a-vps

那些应该涵盖你的基础知识。

之后,您应该可以将用户重定向到https://example.com/login.cfm,或者将您的用户重定向到HTTPS。

答案 1 :(得分:1)

在你的Application.cfc中,向onRequestStart添加一个函数imposeHttps()

<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>

对子文件夹/ foo,/ bar,/ etc的调用将通过https进行,并且还调用文件login.cfm,foo_secure.cfm和root中的some_secure.cfm将通过cflocation强制安全。