- Как сделать переадресацию для главной страницы
- Как сделать переадресацию главной страницы в htaccess
- Как сделать в PHP переадресацию главной страницы
- Настраиваем файл .htaccess для правильной индексации сайта
- Настраиваем основное зеркало сайта
- Убираем дубль главной страницы /index.php
- Исправляем слэш в URL адресе
- 301 Редирект с одной страницы на другую
- Как проверить ответ сервера?
Как сделать переадресацию для главной страницы
Множественные дубли главной страницы убивают ваш сайт медленно, но верно. Сначала начнет снижаться трафик, а потом и вовсе можно нарваться на фильтры. Во избежание этих проблем нужно настроить правильный редирект, чтобы осталась только одна главная страница. У нас для вас есть несколько рабочих способов:
- Некоторые хостинги дают возможность сделать переадресацию в настройках. Проверьте свою админку, или напишите в тех поддержку;
- Прописать правило перенаправления в htaccess файле;
- Прописать перенаправление внутри php файла.
С первым способом разберётесь сами или техподдержка поможет, а мы расскажем про другие два варианта.
Как сделать переадресацию главной страницы в htaccess
Сначала нам нужно знать, какая ссылка является дублем для главной страницы. Вы можете это выяснить, прочитав статью «Как проверить дубли главной страницы». Далее мы рассматриваем переадресацию с адреса nash-sait.com/index.php на nash-sait.com/ и вы можете сами исправить в примерах ссылку index.php на нужную вам.
Также, не забудьте поменять название домена на ваш и если ваш сайт работает через SSL сертификат, то укажите https:// его, вместо http://
В файле .htaccess ищем сперва такую строку включающую переадресацию или прописываем её сами:
Если такая строка уже есть, то повторно её писать не надо. Размещайте правила переадресации под ней.
RewriteCond % ^[A-Z]\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://nash-sait.com/ [R=301,L]
Сработает только для главной страницы.
RewriteCond % ^[A-Z] /index.php HTTP/ RewriteRule ^index.php$ http://nash-sait.com/ [R=301,L]]
Сработает только для главной страницы.
RewriteRule ^(.*)index.php$ http://nash-sait.com/$1 [R=301,L]
Сработает и для главной, и для всех других индексных страниц. Например, перенаправит с адреса nash-sait.com/folder/index.php на nash-sait.com/folder/
RewriteCond % ^/index.php RewriteRule ^(.*)$ http://nash-sait.com/ [R=301,L]
Сработает только для главной страницы.
Не нужно прописывать сразу все правила, попробуйте каждое поочерёдно, пока не найдёте то, что работает в вашем случае. Разница между первыми двумя вариантами вообще не существенна. Какой из них сработает, зависит от настроек сервера.
Как сделать в PHP переадресацию главной страницы
Можно прописать PHP перенаправление внутри самого index.php или в любом другом php файле, отвечающем за отображение главной страницы.
**Код должен быть прописан до операторов echo и до отправки кук.
if( $_SERVER['REQUEST_URI'] == "/index.php" ) < header( "Location: /", TRUE, 301 ); exit(); >
Сработает только для главной страницы.
$ws_uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2); /* * Использовать это условие если нужна переадресация только для главной * if($ws_uri_parts[0] == '/index.php') * * Дальнейшее условие сделает переадресацию и для главной, и для всех других индексных страниц. Например, перенаправит с адреса nash-sait.com/folder/index.php на nash-sait.com/folder/ */ if(substr($ws_uri_parts[0], -10) == '/index.php') < $ws_uri_protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? 'https://' : 'http://'; $ws_uri_canonical = $ws_uri_protocol . $_SERVER['HTTP_HOST'] . str_replace('/index.php', '/', $ws_uri_parts[0]); $ws_uri_canonical .= '?'.$ws_uri_parts[1]; // Удалить эту строку, если не нужны GET параметры URL адреса header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$ws_uri_canonical ); exit(); >
Лично я пользуюсь собственными наработками и применяю вот этот вариант для переадресации. Там в коде есть пояснения для модификации под разные ситуации, но вы должны знать что делаете и почему именно так.
Эти варианты помогут вам настроить правильную переадресацию для устранения дублей главной страницы. Мы в вас верим! Если что — пишите в комментариях свои вопросы.
Настраиваем файл .htaccess для правильной индексации сайта
Каждый раз, когда приходится провести технический аудит сайтов клиентов, я начинаю смотреть, что попало в индекс поисковых систем. Зачастую в поиск попадают дубли страниц, а Яндекс и Google видят один и тот же сайт, как два разных.
Что бы активно заняться продвижением, покупкой ссылочной массы и сэкономить бюджет вашей компании, необходимо заранее привести сайт в порядок и настроить служебный файл .htaccess.
Рассмотрим по порядку, что нам необходимо прописать. Есть множество всяких настроек, я расскажу о том, что я использую. Со временем, буду дополнять новые проверенные настройки.
Настраиваем основное зеркало сайта
Основной ошибка, когда сайт доступен по двум адресам, с www или без:
Точной информации, что лучше использовать, я не нашел. Но чаще склонен использовать название домена без www. Считаю, что использование www в названии, чаще актуально в off-лайне, для рекламы, баннерах, визитках. Визуальное видение названия с www подразумевает, что речь идет о сайте в интернете.
Смотрим, что нужно прописать:
RewriteEngine On
RewriteCond % ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
RewriteEngine On
RewriteCond % ^www\.site\.ru$ [NC]RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Убираем дубль главной страницы /index.php
Далее, сайт может быть доступен как:
Убираем /index.php из индексации:
RewriteCond % ^[A-Z]\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]
Исправляем слэш в URL адресе
Например страница доступна со слэшем и без него:
Необходимо выбрать что-то одно. Честно, не уверен насколько это серьезно для продвижения сайта, будет ли вес страницы разбиваться пополам? Но есть один отрицательный момент, когда страница без слэша на конце, или наоборот, отдает ответ сервера 404. Посмотрим решение.
301 Редирект с одной страницы на другую
Если адрес вашей страницы поменялся и вам необходимо сделать перенаправление на новую, используем следующий формат записи:
Redirect /old.php http://site.ru/new.php
Как проверить ответ сервера?
В процессе настройки файла .htaccess или после всех проделанных операций на сайте, необходимо убедиться в правильности работы вашего ресурса. Есть различные интернет-сайты для проверки, я использую сервис Яндекса — » Проверка ответа сервера». Для проверки необходимо добавить сайт в панель Яндекс.Вебмастер.
Надеюсь данная статья поможет вам с помощью служебного файла .htaccess добиться правильной индексации сайта. Не забывайте включать директиву модуля RewriteEngine On !