Существует ли более короткая версия этого вида фильтра? - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь создать дружественные для SEO URL-адреса из длинных запросов фильтра, но мне очень тяжело понять, как работают условия переписывания модов и выражений.

У меня есть этот фильтр URL (это самый длинный вариант, сгенерированный php)

mydomain.com/en/items/CategoryID(INT)/Category_name(STR)/Sub_category_ID(INT)/Sub_category_name(STR)/list-type=(STR)/item-type=(STR)/difficulty=(INT)/author=(INT or STR)/page=(INT)

Это зависит от разных обстоятельств (фильтры активированы или нет) Например, это может быть:

mydomain.com/en/items/page=2 (если выбрана только страница) или

mydomain.com/en/items/1/category-ones-name/page=2 (если выбрана страница категории И)

.. и т. Д.

На данный момент в моем файле .htacess для каждого возможного варианта есть ТОННЫ повторяющихся строк, вот так: (следуя примеру выше)

RewriteRule ^en/items/page=([0-9]+)$ index.php?page=$1 [L]
RewriteRule ^en/items/([0-9]+)/([A-Za-z0-9-]+)/page=([0-9]+)$ index.php?category=$1&page=$3 [L]

.. и так далее,

что (я думаю) очень плохая реализация. Должен существовать более чистый и профессиональный способ решения этой проблемы. (Порядок этих фильтрующих переменных фиксирован, но их наличие нет.)

Есть ли способ создать "простое" условие "одна строка", которое может обработать этот супер длинный URL?

Заранее спасибо!

...