Перенаправление ссылок без расширения на ссылки с расширением

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем LodeRunner, 20 сен 2010.

Статус темы:
Закрыта.
  1. LodeRunner

    LodeRunner

    Регистр.:
    10 фев 2010
    Сообщения:
    220
    Симпатии:
    12
    На сайте работают ссылки без расширения:
    HTML:
    например, www.site.ru/faq
    и с расширением html:
    HTML:
    например, www.site.ru/faq.html
    Тем самым создаются дубли страниц, что очень нехорошо.
    Помогите пожалуйста с этим, надо все ссылки без расширения перенаправлять на ссылки с расширением html, чтобы не было дублей и было всегда так:
    HTML:
    www.site.ru/faq.html
     
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^(.+)\.html$
    RewriteRule ^(.*)$ /$1.html [R=301,L]
     
    LodeRunner нравится это.
  3. LodeRunner

    LodeRunner

    Регистр.:
    10 фев 2010
    Сообщения:
    220
    Симпатии:
    12
    ShoxMaster
    Большое спасибо.
    А скажите пожалуйста, что надо прописать, чтобы был редирект наоборот, т.е. все страницы с расширением html и php редиректились на страницы без расширения.
    Например:
    HTML:
    www.site.ru/page.html
    или
    www.site.ru/page.php
    Редирект этих страниц на:
    HTML:
    www.site.ru/page
    И имеет ли значение, прописывать слэш в конце таких страниц без расширения или нет?
     
  4. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on
    RewriteRule ^(.+)\.(php|html)$ /$1 [R=301,L,QSA]
    Современные ПС жрут всё, что попадает под руку. Я написал вариант без слеша, нужно всего лишь добавить слеш после /$1.
     
    LodeRunner нравится это.
Статус темы:
Закрыта.