Перенаправление индексного файла домашней страницы без зацикливания

Многие web-сайты делают ссылку на свою собственную начальную страницу примерно так: http://www.yourdomain.com/index.html. Проблема здесь в том, что большинство входящих на начальную страницу сайта ссылок указывает http://www.yourdomain.com (разделяя таким образом "сок ссылок" по сайту). Когда издатель обнаруживает это, он хочет исправить свои внутренние ссылки, а затем сделать 301-й редирект с http://www.yourdomain.com/index.html наhttp://www.yourdomain.com/, но здесь будут проблемы с рекурсивными редиректами (если это будет сделано неправильно).

Когда кто-то подключается к вашему web-сайту (вписав строку http://www.yourdomain.com), то система DNS помогает браузеру найти web-сервер вашего сайта. Как web-сервер решает, что именно показать браузеру? Оказывается, он делает это посредством загрузки файла с жесткого диска web-сервера вашего web-сайта.

Когда файл не указан (как в предыдущем примере, где указано только доменное имя), то web-сервер загружает файл, который называется файлом по умолчанию. Обычно это файл с таким названием, как index.html, index.htm, index.shtml, index.php или default.asp.

Имя файла может быть каким угодно, но большинство web-серверов используют по умолчанию какое-то определенное имя файла. Проблема заключается в том, что многие системы CMS будут показывать обе формы вашей начальной страницы:

• http://www.yourdomain.com;

• http://www.yourdomain.com/index.php.

Возможно, что все страницы сайта ссылаются только на http://www.yourdomain.com/index.php, но большинство ссылок сторонних организаций на вашу начальную страницу, скорее всего, будет указывать на http://www.yourdomain.com/.

Это может создать проблему дублированного контента, если поисковый движок видит две версии вашей начальной страницы и думает, что это разные (но дублированные) документы. Google очень хорошо распознает эту конкретную проблему, но лучше на это не надеяться.

Поскольку вы уже научились делать 301-е редиректы, то можете подумать, что решение проблемы в 301-м редиректе с http://www.yourdomain.com/index.php наhttp://www.yourdomain.com/. Звучит неплохо, верно? К сожалению, здесь есть определенные трудности.

Что произойдет, если сервер видит запрос http://www.yourdomain.com/ index.php, а потом увидит, что он должен сделать 301-й редирект наhttp://www.yourdomain.com/? Но когда он загружает http://www.yourdomain.com/, он находит файл по умолчанию (index.php) и начинает грузитьhttp://www.yourdomain.com/index.php, затем он видит, что вы хотите сделать редирект на http://www.yourdomain.com/ и получается бесконечный цикл.