Цикл перенаправления Coldfusion 301 (www и не www указывают на один и тот же файл)

Я искал это везде, но все, что я могу найти, связано с файлами.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 и non-www как два отдельных сайта, даже если он указывает на один и тот же файл. Также редирект 301 перенесет полномочия ссылки с не-www на домен www.

2 ответа

Решение

Я думаю, что для этого в CF вы должны сделать что-то, сочетающее ваши 2.

<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. удачи!

Если вы действительно хотите сделать это с ColdFusion, попробуйте это в методе onRequestStart() вашего файла Application.cfc...

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

Но, как уже говорили другие, вам лучше перенаправить на уровень веб-сервера.

Другие вопросы по тегам