1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Инфо Убираем дубли в Joomla с ЧПУ (.htaccess + скрытая настройка)

Тема в разделе "Joomla", создана пользователем prosto-chups, 12 мар 2013.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Модераторы: arman29, DMS, NightHunter
  1. prosto-chups

    prosto-chups ВТР

    Регистр.:
    3 фев 2009
    Сообщения:
    251
    Симпатии:
    161
    Для тех, кто не хочет ставить тяжелые компоненты вроде sh404sef, ArtioSEF есть способ убрать основные дубли при помощи .htaccess

    Во первых, убераем http://your-site/index.php
    Код:
    RewriteBase /
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [L,R=301]
    Во вторых убираем:
    http://your-site/statyi
    http://your-site/statyi/
    Получаем только:
    http://your-site/statyi.html
    Код:
    RewriteCond %{HTTP_HOST} (.*)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} /$ [NC]
    RewriteRule ^(.*)(/)$ $1 [L,R=301]]
     
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(.*).html$
    RewriteRule ^(.*[^/])$ $1.html [L,R=301]
    Все вместе, вставляем после:
    Код:
    RewriteEngine On
    Такие строчки:
    Код:
    RewriteBase /
     
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [L,R=301]
     
    RewriteCond %{HTTP_HOST} (.*)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} /$ [NC]
    RewriteRule ^(.*)(/)$ $1 [L,R=301]]
     
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(.*).html$
    RewriteRule ^(.*[^/])$ $1.html [L,R=301]

    Второе касается дублирование ссылок в статьях, ошибемся в адресе, например в место:
    http://your-site/statyi/53-ochen-interesnaya-statya.html
    напишем:
    http://your-site/statyi/53-ochen-interesnaya.html
    или:
    http://your-site/statyi/53-ochen.html
    или вообще:
    http://your-site/statyi/53-какая-то-абракадабра.html
    Все равно откроется наша страница!

    Все из-за ID (в данном случае 53). Избавляемся от этого.
    В файл:
    корень_сайта/administrator/components/com_content/config.xml
    Вставляем в удобное место (лучше с верху:(
    Код:
    <field name="sef_advanced_link"
        type="radio"
        default="1"
        label="SEF: ID статьи в URL"
        description="Показать ID статьи в URL?">
        <option value="1">JNO</option>
        <option value="0">JYES</option>
    </field>
    В админке, в менеджере материалов заходим в настройки (она справа вверху). Во всплывающем окне ищем новый параметр SEF: ID статьи в URL.

    К стати, за одно избавитесь от этого ID в URL.

    Только все алиасы на сайте должны быть разные, если Вы введете одинаковые алиасы, система Вас не предупредит! Но сайт выдаст 404!

    P.S. Если некоторые старые страницы будут отдавать 404 ошибку, поправьте файл:
    корень_сайта/components/com_content/router.php
    Замените код:
    PHP:
    // then we assume it is a category. If they don't we assume it is an article
    if ($count === 1) {
    На:
    Код:
    //then we assume it is a category. If they don't we assume it is an article
    if ($count === 1 && !$advanced) {
     
    UltrbI4, YaBuka, kstnews и 4 другим нравится это.
  2. modmix

    modmix Постоялец

    Регистр.:
    19 мар 2009
    Сообщения:
    140
    Симпатии:
    20
    это для стандартных материалов Joomla. А если весь контент построен на Zoo - не подскажите как отредактировать .htaccess?
     
  3. prosto-chups

    prosto-chups ВТР

    Регистр.:
    3 фев 2009
    Сообщения:
    251
    Симпатии:
    161
    .htaccess подойдет и для ZOO и для K2
     
  4. scaners

    scaners Постоялец

    Регистр.:
    3 июл 2006
    Сообщения:
    54
    Симпатии:
    19
    Спасибо за информацию. Хотя, честно говоря, не знаю, что лучше - воспользоваться данным методом, или просто поставить что то типа Shnodoubles.
     
  5. prosto-chups

    prosto-chups ВТР

    Регистр.:
    3 фев 2009
    Сообщения:
    251
    Симпатии:
    161
    На сколько я помню, Shnodoubles только для J1.5...
    Я, например, считаю, что чем меньше плагинов включено, тем лучше... Зачем создавать лишнюю нагрузку на сайт (движек), делать лишние запросы в базу, реплейсы и т.д.
    Этот метод не дает лишней нагрузки...
     
    vangelis нравится это.
  6. scaners

    scaners Постоялец

    Регистр.:
    3 июл 2006
    Сообщения:
    54
    Симпатии:
    19
    Сейчас Shnodoubles есть и для 2.5. Но по поводу нагрузки да, полностью согласен!
     
  7. opposite

    opposite Постоялец

    Регистр.:
    25 сен 2007
    Сообщения:
    125
    Симпатии:
    115
    А как быть с ссылками в меню? Например, со ссылками на категории? Алиасам также дописывается ".html" и в итоге по ссылке получается ошибка 404.
     
  8. prosto-chups

    prosto-chups ВТР

    Регистр.:
    3 фев 2009
    Сообщения:
    251
    Симпатии:
    161
    К ссылкам меню (алиасам) тоже дописывается .html, но это не создает ошибку, а наоборот помогает избавиться от двух дублей. Как раз это я и писал:
     
    opposite нравится это.
  9. opposite

    opposite Постоялец

    Регистр.:
    25 сен 2007
    Сообщения:
    125
    Симпатии:
    115
    Возможно, всему виной фреймворк JAT3v2 от JOOMLART, но по нажатии на ссылки в меню, к алиасу действительно добавляется .html и это вызывает ошибку 404. В случае с материалами все замечательно, но вот категории (и блоки, и списки) - все "падают" :(
     
  10. prosto-chups

    prosto-chups ВТР

    Регистр.:
    3 фев 2009
    Сообщения:
    251
    Симпатии:
    161
    Никогда не пользовался JAT3v2, по этому точно сказать не могу, вполне возможно, что он как-то влияет на ссылки. С другими компонентами работает на ура, проверял на многом. При чем все равно, сайт на Денвере или нет, тоже проверял.

    Почему не распространяется? С VirtueMart как раз на ура работает! Да и с другими компонентами тоже! Была обнаружена проблема только с JAT3v2.
     
    opposite нравится это.