ColdFusion多域重定向

时间:2014-06-13 09:06:58

标签: iis coldfusion http-status-code-301 coldfusion-8 cflocation

我有很多域名(www.vf1.com,www.vf2.com,www.vf3.com等)都指向我的主域名(www.vf.com)。如何从这些其他域重定向到我的主域名?

因此,如果有人访问www.vf1.com/news/1234,他们应该被重定向到www.vf.com/news/1234

我还有images.vf.com,css.vf.com和js.vf.com这样的域名,我不需要重定向

我在IIS上使用ColdFusion 8(但目前我无权访问IIS)

我在http://www.festivalreviews.co.uk/latest/news/14500等网址上尝试了以下内容,但会重定向到http://www.virtualfestivals.com/index.cfm

<cfif cgi.http_host IS 'www.festivalreviews.co.uk'>
    <cfset jjURL = 'http://www.virtualfestivals.com' & CGI.PATH_INFO>
    <cfheader statuscode="301" statustext="Moved Permanently">
    <cfheader name="Location" value="#jjURL#">
</cfif>

由于

2 个答案:

答案 0 :(得分:1)

我同意Adam,如果可能的话,使用您的网络服务器可能会更好。话虽如此,我过去不得不用ColdFusion做类似的事情。当我需要重建URL时,我通常使用与您尝试的不同的CGI变量。看看这是否适合你。

<cfif CGI.SERVER_NAME IS 'www.festivalreviews.co.uk'>
    <cfset jjURL = 'http://www.virtualfestivals.com' & CGI.SCRIPT_NAME>
    <cfif CGI.QUERY_STRING NEQ ''>
        <cfset jjURL = jjURL & '?' & CGI.QUERY_STRING>
    </cfif>
    <cfheader statuscode="301" statustext="Moved Permanently">
    <cfheader name="Location" value="#jjURL#">
</cfif>

CGI.SERVER_NAME - 服务器的主机名,DNS别名或IP地址
CGI.SCRIPT_NAME - 正在执行的脚本的虚拟路径
CGI.QUERY_STRING - 查询后面的信息?在引用此脚本的URL中

您可以在documentation here中了解有关CGI变量的更多信息。

答案 1 :(得分:0)

从ColdFusion 8开始,我使用&lt; cflocation&gt; (因为CF8为这些重定向添加了statusCode属性)。

<cfif CGI.SERVER_NAME EQ 'www.festivalreviews.co.uk'>
    <cfset jjURL = 'http://www.virtualfestivals.com' & CGI.SCRIPT_NAME>
    <cfif CGI.QUERY_STRING NEQ ''>
        <cfset jjURL = jjURL & '?' & CGI.QUERY_STRING>
    </cfif>
    <cflocation url="#jjURL#" addtoken="no" statuscode="301">
</cfif>

&LT; cflocation&GT;文档:https://wikidocs.adobe.com/wiki/display/coldfusionen/cflocation