Coldfusion 301重定向循环(www和非www指向同一个文件)

时间:2015-01-07 15:59:16

标签: .htaccess redirect coldfusion seo cflocation

我到处搜索过这个,但我能找到的只与.htaccess文件有关。托管我的网站的服务器不使用Apache,所以我不能使用.htaccess文件。

每当他们输入非www域时,我都会尝试将人们发送到我的网站的www版本。因此,如果用户输入 domain.com ,则会将其发送到 www.domain.com 。问题是他们都已指向相同的coldfusion文件。

我有一个可行的重定向设置,但它是一个302重定向:

<cfif cgi.server_name eq "mydomain.com">
    <cfset cgi.server_name="www.mydomain.com"/>
</cfif>

如果我将cfset更改为:

<cflocation statuscode="301" url="www.mydomain.com"/>

它创建了一个无限重定向循环,我得到一个错误页面。

我需要使用301重定向,以便Google不会对我的网页进行双重索引,并说我有重复的内容,因为它将www和非www视为两个单独的网站,即使它指向同一个文件。 301重定向也会将链接权限从非www转移到www域。

2 个答案:

答案 0 :(得分:2)

要在CF中执行此操作,您可以根据我的想法做一些事情。

<cfif cgi.server_name IS 'mydomain.com'>
     <cflocation statuscode="301" url="www.mydomain.com"/>
</cfif>

仅供参考 - 您的代码错误地显示cflocaiton - cgi.server_name不是cflocation的属性。

正如其他人所说,您可以使用您的网络服务器执行此操作。 Apache或IIS都可以非常轻松地处理此任务。在IIS中,您设置了一个以mydomain.com作为主机标头的站点,并将其专门设置为www.mydomain.com的重定向站点。祝你好运!

答案 1 :(得分:1)

如果您真的想要使用ColdFusion,请在Application.cfc文件的onRequestStart()方法中尝试...

<cfif cgi.server_name eq "example.com">
    <cflocation statuscode="301" url="http://www.example.com" addToken="no">
</cfif>

但正如其他人所说,你最好不要在网络服务器层重定向。