@alohamneploha
ничего не умею

Стоит ли делать перенаправление без слеша?

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

У меня есть сайт, где ~100 страниц индексируются и имеют высокие места по тематическим запросам. Проблема в том, что в вебмастере очень много дублей, страницы типа: sitename.com/news/123/ и sitename.com/news/123. У меня нет перенаправления на слеш, поисковики воспринимают это как две разные страницы, в поиске есть и со слешем и без (соотношение 30 на 70%).

Стоит ли убирать слеш через htaccess, и если да - не выпадут страницы которые были со слешем?

Заранее спасибо.
  • Вопрос задан
  • 1379 просмотров
Решения вопроса 1
@kucheriavij
Если перевес в пользу страниц без слеша, то делайте редирект на без слеша. В идеале стоит еще сделать так, чтоб отрабатывал только один вариант, в вашем случае это без слеша, со слешем должно отдавать 404.
не выпадут страницы которые были со слешем?

вам и надо добиться такого результата, чтоб в выдаче был только один вариант, в противном случае это будет дубли контента
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@yanakey
Если выберите вариант URL без trailing-слеша,
нужно будет отключить слеши для директорий - DirectorySlash Off,
иначе получите circular redirect при обращении к ним
("page isn't redirecting properly").

При DirectorySlash Off опция DirectoryIndex внутри директорий игнорируется,
нужно будет добавить правила mod_rewrite уровнем выше для исправления.

При этом, внутри директорий использовать mod_rewite не получится,
правила нужно будет перенести уровнем выше.

#
RewriteRule ^mydir$ /mydir/index.php [L,E=MYVAR:1]
RewriteCond %{ENV:REDIRECT_MYVAR} !1
RewriteRule ^mydir/$ /mydir [R=301,L]

#
RewriteCond %{REQUEST_URI} ^/mydir
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mydir/myapp.php [L,QSA]


404 отдавать не стоит, достаточно 301 для ботов от дублей.
Ответ написан
Комментировать
Поисковики вполне корректно обрабатывают 301 Redirect.
Или можно добавить тег Link-canonical. Документация от google.
Ответ написан
Комментировать
@galliard
Я бы рекомендовал делать перенаправление на "без слеша". Все-токи при /news/123/ я воспринимаю 123 как папку, а не как конечную страницу. Хотя это вкусовщина, конечно.

В .htaccess убирается так:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы