Дубликат главной страницы

cerokyz
На сайте с 09.06.2008
Offline
67
1159

Здравствуйте.

Я уже открывал похожую тему /ru/forum/841006

но она уже старая и в ней не принимаются ответы.

Полгода сайт работал без дубликата главной, я ничего не трогал, но теперь опять стал выскакивать http://сайт.ru/index.html

Это как было прописано, так и осталось.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.сайт.ru$ [NC]

RewriteRule ^(.*)$ http://сайт.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

RewriteRule ^index\.html$ http://сайт.ru/ [R=301,L]

Просто - работало и перестало работать, что делать не знаю?..

Сейчас ещё и в robots.txt добавил строку: Disallow: /index.html

Хороший хостинг (http://billing.hostingru.net/pl.php?781) Автовышки (http://izvoshik.ru/)
P
На сайте с 08.11.2011
Offline
52
#1

Удалить из индекса поисковых систем

Закрыть в robots

cerokyz
На сайте с 09.06.2008
Offline
67
#2

Оказывается бывает ещё дубликат страницы, где есть завершающий слэш, и где его нет.

http://www.site.ru/ и http://www.site.ru

Нужно ли с этим бороться?

Вот нашел два варианта:

1. Добавляем слеш в конце URL

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?) RewriteRule .* %1/ [R=301,L]

--------------------

2. Добавить завершающий слэш через .htaccess

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*[^/])$ $1/ [L,R=301]

---------------------

В .htaccess у меня уже есть это-

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]

RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

RewriteRule ^index\.html$ http://site.ru/ [R=301,L]

Какой из вариантов лучше выбрать и добавить в .htaccess?

A
На сайте с 22.11.2012
Offline
80
#3

"Нужно ли с этим бороться?" - да, советую сделать редирект. Т.к поисковики воспринимают обе ссылки как разные + если пользователи ставят ссылки на страницы, то "польза" от них рассеивается из-за дублирования.

По .htaccess - попробуйте добавить второй вариант к тому, что уже есть:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*[^/])$ $1/ [L,R=301]

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]

RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

RewriteRule ^index\.html$ http://site.ru/ [R=301,L]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий