Преобразование URL в get запрос переменная и значение возможно?
Здравствуйте!
Цель, чтобы посетитель видел урл
domain.ru/razdel/var1_value1/var2_value2/var3_value3/.../var8_value8/
Всего переменных 8, их порядок строгий, но не всегда все переменные присутствуют в ссылке
может быть, например
domain.ru/razdel/var1_value1/var2_value2/var7_value7/
Разработчики на работе говорят, что в настройке nginx нужно описать все возможные варианты пересечений. Но я очень сильно сомневаюсь, что не существует универсального решения на уровне
.htaccess и nginx разобрать урл на переменная+значение и передать запрос в формате domain.ru/razdel.php?var1=value1&var2=value2&var7=value7
Буду очень признателен за ответ, возможна ли настройка обработки таких урл.
Дополнительно:
Можно конечно, но зачем?
Такие штуки проще делать в PHP
Если упариваться, то можно и на чисто nginx-вых конфигах, но читать это будет невозможно
Мы имеем несколько разделов услуг, для каждой своя страница и фильтр по ним, привел пример одной услуги с 8-ю параметрами.
Мои пожелания формирования урла типа domain.ru/razdel/var1_value1/var2_value2/var3_value3/.../var8_value8/ и блокирование на бэке возможности выбора параметра, если в выдаче нет результатов. С блокировкой решили вопрос, а за урлами отправили к сисадмину, а он говорит надо все варианты пересечений описывать, а мне как-то не верится, что нельзя написать универсальный обработчик урл, если и имя переменной и ее значение в урл присутствуют.
Я так понял урлы тоже на бэке лучше обрабатывать.
но даже если так, что мешает сделать domain.ru/razdel/var1/value1/var2/value2/var3/value3/.../var8/value8/
?
У всех топов ссылки в формате
domain.ru/razdel/var1-value1/var2-value2/var3-value3/
ИЛИ
domain.ru/razdel/var1/value1/var2/value2/var3/value3/
ИЛИ
domain.ru/razdel/value1/value2/value3/
но смысл не только в гет параметрах, есть и другие критерии, конечно.
А в урл основной смысл, что формируется урл типа /.../ где каждый следующий параметр отвечает за меньшую популярность запроса и уточняет поиск.
Но я так понял, что поставил непростую задачу на разработку.
P.S. Решили попробовать реализовать на фронте на NUXT UI
Но я так понял, что поставил непростую задачу на разработку.
очень простая, если ваш дев не олень.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, конечно, преобразование URL в GET запрос с переменными и значениями возможно. Для этого вам необходимо использовать функции PHP для обработки URL.
Прежде всего, вам нужно получить URL текущей страницы с помощью функции `$_SERVER['REQUEST_URI']`. Затем вы можете использовать функцию `parse_url()` для разбора URL на составляющие (схема, хост, путь, запрос и т. д.).
Далее, для преобразования строки запроса в массив GET параметров, вы можете использовать функцию `parse_str()`. Эта функция разбивает строку запроса на пары ключ-значение и помещает их в массив.
Пример кода:
$url = $_SERVER['REQUEST_URI']; $queryString = parse_url($url, PHP_URL_QUERY); parse_str($queryString, $params); // Теперь у вас есть массив $params с GET параметрами текущего URL // Можно обращаться к ним по ключу, например $params['param_name']
Помните, что при использовании GET параметров в URL необходимо учитывать безопасность вашего приложения. Всегда фильтруйте и экранируйте данные, полученные из URL, чтобы избежать уязвимостей XSS и SQL инъекций.