Помощь Удаление дублей посредством редиректа

Тема в разделе "DLE", создана пользователем Silver_Web, 4 июн 2010.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Silver_Web

    Silver_Web Постоялец

    Регистр.:
    2 дек 2008
    Сообщения:
    50
    Симпатии:
    50
    В общем затеял на одном сайте тотальную зачистку дублей страниц.
    В роботсе закрыл все что можно, но там далеко не все закроешь.
    По этому перешел к настройке .htaccess.

    Удалось без проблем закрыть:

    Дубли c www
    Т.е. все страницы с www.site.ru редиректят на site.ru
    Кому нужно, вот код:

    PHP:
    # Редирект c www.site.ru на без site.ru
    RewriteEngine on
    RewriteCond 
    %{HTTP_HOST} ^www.site.ru
    RewriteRule 
    ^(.*)$ http://site.ru/$1 [R=permanent,L]

    Дубли главной
    Закрыл site.ru/index.php
    Кому нужно, вот код:

    PHP:
    # Редирект для главной (с /index.php,html на /)
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.htmlHTTP/
    RewriteRule ^index\.html$ / [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.phpHTTP/
    RewriteRule ^index\.php$ / [R=301,L]

    Но вот столкнулся с проблемой дублей-категорий.
    Цель - переадресовать УРЛы категорий без слеша в конце на УРЛы со слешем. Т.е. с site.ru/category на site.ru/category/

    Нашел код:

    PHP:
    # Редирект для добавления / в конц УРЛ)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ http://site.ru/$1/ [L,R=301]

    С ним есть 2 проблемы:
    1. Слеш добавляется не только к УРЛам категорий, но и к УРЛам новостей.
    2. Не работабют статические страницы.

    Есть обратный код, который убирает слеш со всех страниц:

    PHP:
    # remove trailing slash if the url points to a non-existing folder
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule 
    ^(.+)/$ /$[R=301,L]

    Но мне он не совсем подходит, так как в индексе Гугла практически все страницы-категории со слешем, а в Яндексе и так и так.
    Если воспользоваться последним кодом, то нужно будет очень долго ждать переиндексации.
    P.S. Проблема возникла из за того, что давно по неопытности прописал в шаблоне УРЛ на категории без /, а ДЛЕ формирует эти УРЛ с ним (/).

    Посоветуйте как быть...

    Заранее благодарен!
     
  2. Silver_Web

    Silver_Web Постоялец

    Регистр.:
    2 дек 2008
    Сообщения:
    50
    Симпатии:
    50
    Разобрался...

    Вот код:
     
Статус темы:
Закрыта.