За последние 24 часа нас посетили 18533 программиста и 1670 роботов. Сейчас ищут 888 программистов ...

оптимизация modRewrite

Тема в разделе "Регулярные выражения", создана пользователем kotyara, 22 мар 2010.

  1. kotyara

    kotyara Активный пользователь

    С нами с:
    17 фев 2010
    Сообщения:
    163
    Симпатии:
    0
    В общем решил я сделать чпу для мебельного магазина форматы ссылок следующие:
    myagkaya_mebel/divan/vikatnoi/po-cene/s10.html
    myagkaya_mebel/divan/po-cene/s10.html
    myagkaya_mebel/divan/vikatnoi/s10.html
    myagkaya_mebel/divan/vikatnoi/po-cene.html
    myagkaya_mebel/po-cene/s10.html
    myagkaya_mebel/divan/vikatnoi.html
    myagkaya_mebel/s10.html
    myagkaya_mebel/divan.html
    myagkaya_mebel.html

    тут вроде все понятно: самая длинная ссылка формата
    группа/подгруппа/категория/параметр сортировки/номер страницы

    ну и соответственно более короткие ссылки - формат показал выше. параметр сортировки всегда начинается с префикса po- номер страницы начинается с s и все это вместе с названиями разделов разделяется слешами.

    для этой цели в .htaccess написал следующее:

    Код (Text):
    1. # myagkaya_mebel/divan/vikatnoi/po-cene/s10.html
    2. RewriteRule ^(.*)/(.*)/(.*)/po-(.*)/s([0-9]+).html$ index.php?main=$1&sub=$2&sub2=$3&sort=$4&page=$5 [L,QSA]
    3.  
    4. # myagkaya_mebel/divan/po-cene/s10.html
    5. RewriteRule ^(.*)/(.*)/po-(.*)/s([0-9]+).html$ index.php?main=$1&sub=$2&sort=$3&page=$4 [L,QSA]
    6.  
    7. # myagkaya_mebel/divan/vikatnoi/s10.html
    8. RewriteRule ^(.*)/(.*)/(.*)/s([0-9]+).html$ index.php?main=$1&sub=$2&sub2=$3&page=$4 [L,QSA]
    9.  
    10. # myagkaya_mebel/divan/vikatnoi/po-cene.html
    11. RewriteRule ^(.*)/(.*)/(.*)/po-(.*).html$ index.php?main=$1&sub=$2&sub2=$3&sort=$4 [L,QSA]
    12.  
    13. # myagkaya_mebel/po-cene/s10.html
    14. RewriteRule ^(.*)/po-(.*)/s(.[0-9]+).html$ index.php?main=$1&sort=$2&page=$3 [L,QSA]
    15.  
    16. # myagkaya_mebel/divan/vikatnoi.html
    17. RewriteRule ^(.*)/(.*)/(.*).html$ index.php?main=$1&sub=$2&sub2=$3 [L,QSA]
    18.  
    19. # myagkaya_mebel/s10.html
    20. RewriteRule ^(.*)/s(.[0-9]+).html$ index.php?main=$1&page=$2 [L,QSA]
    21.  
    22. # myagkaya_mebel/divan.html
    23. RewriteRule ^(.*)/(.*).html$ index.php?main=$1&sub=$2 [L,QSA]
    24.  
    25. # myagkaya_mebel.html
    26. RewriteRule ^(.*).html$ index.php?main=$1 [L,QSA]
    все как бы работает, но я думаю это можно как то оптимизировать. сам я не обладаю большим опытом работы с modRewrite поэтому прошу тех кто с ним на ты помочь советом. можно было бы на php эту задачу скинуть и там регуляркой отрешать, но мне кажется так будет красивей. по поводу производительности тоже не знаю что оптимальней в .htaccess этим заниматься или же в php - так что этот вопрос тоже открыт для обсуждения