Сведения о вопросе

profi

22:38, 3rd August, 2020

Теги

Apache    

RewriteRule, оптимизация?

Просмотров: 354   Ответов: 2

Имеется максимально длинный запрос:
www.site.com/admin/catalog/computers/page3/search/[base64_encode_serialized_array]/filter_by_photo/sorted_by_id/

Модификации запроса могут быть разными:
www.site.com/admin/catalog/computers/page3/filter_...
www.site.com/admin/catalog/computers/page3/sorted_...

и т.д.


Эти все URL обрабатываются у меня сейчас одним правилом:

RewriteBase /

RewriteRule ^/?admin/catalog/([a-zA-Z]+)/(page([0-9]+)/?)?(search/([a-zA-Z0-9]+)/?)?(filter_by_([a-zA-Z]+)/?)?(sorted_by_([a-zA-Z_]+)/?)?/?$ ./index.php?base=Catalog&dbname=$1&p=$3&search=$5&filter_by=$7&sort_by=$9 [L]


Но вот чувствую что можно его оптимизировать, и хотелось бы вынести обработку запчастей отдельно, но не могу найти каким образом правильно это сделать, т.е. нечто такого что-ли:


RewriteBase /

RewriteRule ^/?admin/catalog/([a-zA-Z]+)/?$ ./index.php?base=Catalog&dbname=$1 [C]

RewriteRule ^/?page([0-9]+)/? &p=$1 [C]

RewriteRule ^/?search/([a-zA-Z0-9]+)/? &search=$1 [C]

RewriteRule ^/?filter_by_([a-zA-Z0-9]+)/? &filter_by=$1 [C]

RewriteRule ^/?sorted_by_([a-zA-Z0-9]+)/? &sort_by=$1 [L]


Т.е. по алгоритму должно получится нечто типа как поиск подходящего начала, а дальше на него навешиваем дополнения. Возможно ли такое? И если да, то как?



  Сведения об ответе

fo_I_K

12:13, 17th August, 2020

Возможно, стоит вынести логику обработки «запчастей» из Apache и отдать на откуп PHP скрипту. Опять же будет проще в случае чего уйти на другой сервер.


  Сведения об ответе

9090

16:20, 25th August, 2020

У меня как раз все разбито на части по первому входному параметру в УРЛ.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться