Множественные дубли главной страницы убивают ваш сайт медленно, но верно. Сначала начнет снижаться трафик, а потом и вовсе можно нарваться на фильтры. Во избежание этих проблем нужно настроить правильный редирект, чтобы осталась только одна главная страница. У нас для вас есть несколько рабочих способов:
С первым способом разберётесь сами или техподдержка поможет, а мы расскажем про другие два варианта.
Сначала нам нужно знать, какая ссылка является дублем для главной страницы. Вы можете это выяснить, прочитав статью «Как проверить дубли главной страницы». Далее мы рассматриваем переадресацию с адреса nash-sait.com/index.php на nash-sait.com/ и вы можете сами исправить в примерах ссылку index.php на нужную вам.
Также, не забудьте поменять название домена на ваш и если ваш сайт работает через SSL сертификат, то укажите https:// его, вместо http://
В файле .htaccess ищем сперва такую строку включающую переадресацию или прописываем её сами:
RewriteEngine On
Если такая строка уже есть, то повторно её писать не надо. Размещайте правила переадресации под ней.
Вариант 1.
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://nash-sait.com/ [R=301,L]
Сработает только для главной страницы.
Вариант 2.
RewriteCond % ^[A-Z]<3,9> /index.php HTTP/ RewriteRule ^index.php$ http://nash-sait.com/ [R=301,L]]
Сработает только для главной страницы.
Вариант 3.
RewriteRule ^(.*)index.php$ http://nash-sait.com/$1 [R=301,L]
Сработает и для главной, и для всех других индексных страниц. Например, перенаправит с адреса nash-sait.com/folder/index.php на nash-sait.com/folder/
Вариант 4.
RewriteCond %{REQUEST_URI} ^/index.php RewriteRule ^(.*)$ http://nash-sait.com/ [R=301,L]
Сработает только для главной страницы.
Не нужно прописывать сразу все правила, попробуйте каждое поочерёдно, пока не найдёте то, что работает в вашем случае. Разница между первыми двумя вариантами вообще не существенна. Какой из них сработает, зависит от настроек сервера.
Можно прописать PHP перенаправление внутри самого index.php или в любом другом php файле, отвечающем за отображение главной страницы.
**Код должен быть прописан до операторов echo и до отправки кук.
Вариант 5.
if( $_SERVER['REQUEST_URI'] == "/index.php" ) { header( "Location: /", TRUE, 301 ); exit(); }
Сработает только для главной страницы.
Вариант 6.
$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(); }
Лично я пользуюсь собственными наработками и применяю вот этот вариант для переадресации. Там в коде есть пояснения для модификации под разные ситуации, но вы должны знать что делаете и почему именно так.
Эти варианты помогут вам настроить правильную переадресацию для устранения дублей главной страницы. Мы в вас верим! Если что - пишите в комментариях свои вопросы.