сократить запросы и урезать урл

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

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

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    283
    Симпатии:
    168
    Вопрос таков

    есть ссылка вида перехода по страницам
    index_price.php?id_catalog=548&field_sort=1&page=3&f_kolvo=1&field_sort=2&up_down=down&page=2

    уже прописан на нее реврайт
    RewriteRule price_catalog_(.*)-(.*)-(.*)-(.*)-(.*)\.htm$ /index_price.php?id_catalog=$1&f_kolvo=$2&field_sort=$3&up_down=$4&page=$5

    на выхлопе получаем
    /price_catalog_548-1-1-down-3.htm

    нужно сократить до "пример" такого вида
    /price_catalog_548-3.htm


    т.е. оставить только вывод id категории и номер страницы, нужно вырезать/убрать из урла параметры сортировки, кол-во и т.д...
     
  2. ConstNW

    ConstNW Постоялец

    Регистр.:
    30 июн 2007
    Сообщения:
    132
    Симпатии:
    39

    Код:
    price_catalog_(\d+)?-?(\d+)?-?(\d+)?-?(down|up)?-?(\d+)\.htm$
    
    Пользуйся наздоровье.
     
  3. nafanyaa

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    283
    Симпатии:
    168
    Internal Server Error

    сам уже вроде решил с помощью

    RewriteRule price_catalog_(.*)-page(.*)\.htm$ /index_price.php?id_catalog=$1&f_kolvo=1&field_sort=1&up_down=down&page=$2

    и в индексном файле прописал редирект

    if (preg_match("|index_price\.php\?id_catalog=(\d{1,})&f_kolvo=1&field_sort=1&up_down=down&page=(\d{1,})|i", $_SERVER['REQUEST_URI'], $match)) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: /price_catalog_'.$match[1].'-page'.$match[2].'.htm');
    }

    осталось код в шаблоне разобрать..
     
Статус темы:
Закрыта.