0

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

因此,如果有人点击 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之类的 URL 上尝试了以下内容,但它被重定向到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>

谢谢

4

2 回答 2

1

我同意亚当,如果可能的话,这可能会更好地使用您的网络服务器来处理。话虽如此,过去我不得不用 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 中

您可以在此处的文档中阅读有关 CGI 变量的更多信息。

于 2014-06-13T12:11:54.257 回答
0

从 ColdFusion 8 开始,我使用 <cflocation> (因为 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>

<cflocation> 文档:https ://wikidocs.adobe.com/wiki/display/coldfusionen/cflocation

于 2014-06-14T22:09:36.023 回答