Vertex
@Vertex

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

Имеется максимально длинный запрос:
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]


Т.е. по алгоритму должно получится нечто типа как поиск подходящего начала, а дальше на него навешиваем дополнения. Возможно ли такое? И если да, то как?
  • Вопрос задан
  • 2702 просмотра
Пригласить эксперта
Ответы на вопрос 2
Ogra
@Ogra
Возможно, стоит вынести логику обработки «запчастей» из Apache и отдать на откуп PHP скрипту. Опять же будет проще в случае чего уйти на другой сервер.
Ответ написан
mihavxc
@mihavxc
У меня как раз все разбито на части по первому входному параметру в УРЛ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы