Помогите сократить ссылки в htaccess

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем yaski, 26 июн 2014.

  1. yaski

    yaski

    Регистр.:
    21 фев 2010
    Сообщения:
    483
    Симпатии:
    288
    Сейчас: сайт/категория/подкатегория/страница
    Нужно сделать сайт/страница
    Например: http://site.ru/sell/internet-magaziny/internet_magazin_mjagkih_igrushek/
    Нужно: http://site.ru/internet_magazin_mjagkih_igrushek/

    .htaccess
    Код:
    AddType text/x-component .htc
    AddDefaultCharset CP1251
    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
    Options +FollowSymlinks -Indexes
    RewriteRule ^.htaccess$ - [F]
    RewriteRule ^load$ - [F]
    
    
    RewriteCond %{REQUEST_URI} ^(.*?)/{2,}(.*?)$ [NC]
    RewriteRule ^activate/(.*)/$ index.php?genesis=private&ref=$1 [L]
    RewriteRule ^print/(.*)/$ print.php?guid=$1 [L]
    RewriteRule ^(.*)/page-([0-9])/$ index.php?genesis=$1&current=$2 [L]
    RewriteRule ^sell/(.*)/(.*)/$ index.php?genesis=$1&bmode=$3&board=$2 [L]
    RewriteRule ^manage/(.*)/$ index.php?genesis=manage&board=$1 [L]
    RewriteRule ^sell/(.*)/$ index.php?genesis=$2&bmode=$1 [L]
    RewriteRule ^(.*)/$ index.php?genesis=$1 [L]
    
    


    Нашел вот такое правило
    Код:
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^category/subcategory/zapis/$ http://%{HTTP_HOST}/zapis/ [R=301,L]
    RewriteRule ^zapis/$ /category/subcategory/zapis/ [L]
    как его прикрутить к моему случаю?
     
    Последнее редактирование модератором: 27 июн 2014
  2. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    338
    Симпатии:
    121
    Дай больше примеров урлов, которые нужно сокращать, категорий разных в примере понапиши, или там только 1 категория internet-magaziny?
    http://site.ru/sell/internet-magaziny/internet_magazin_mjagkih_igrushek/

    Завтра наваяю правило по примерам...
     
    yaski нравится это.
  3. yaski

    yaski

    Регистр.:
    21 фев 2010
    Сообщения:
    483
    Симпатии:
    288
    пациент
     
  4. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    338
    Симпатии:
    121
    Поломал голову пол утра, не получится убрать из Вашего урла 2 составляющие, которые являются неизвестными (подкатегория и название товара). Ваша админка недостаточно корявая для такого рода редиректов :) .
    Единственное как Вы можете облагородить УРЛ - это убрать "sell". Делается это так (эти 2 правила нужно поставить в самый низ файла:(
    Код:
    RewriteCond %{REQUEST_URI} ^sell/.*
    RewriteRule ^sell/(.*) /$1 [R=301,L]
    
    RewriteCond %{REQUEST_URI} [\w\d-_]+/[\w\d-_]+/$
    RewriteRule ([\w\d-_]+)/([\w\d-_]+)/$ /sell/$1/$2/ [QSA,L]
    
    Извиняюсь, что не помог.
    PS: Ваш пример использовать не получится потому, что там нету неизвестных. он там явно указывает куда редиректить, а в вашем случае мы не знаем в какую именно подкатегорию нужно совать урл товара...
     
    yaski нравится это.