Преобразование URL в get запрос переменная и значение возможно?

Ссылка скопирована
1 ответ

Здравствуйте!
Цель, чтобы посетитель видел урл
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 на Lua или njs

    Если упариваться, то можно и на чисто nginx-вых конфигах, но читать это будет невозможно

  • Lynn «Кофеман», ну не обязательно же пыхом – любым языком на бэкенде.
  • DevMan, ну я ориентировался на пожелание передавать это в .../razdel.php?...
  • Lynn «Кофеман», это понятное, прост дополнил.
  • Lynn «Кофеман», спасибо
    Мы имеем несколько разделов услуг, для каждой своя страница и фильтр по ним, привел пример одной услуги с 8-ю параметрами.
    Мои пожелания формирования урла типа domain.ru/razdel/var1_value1/var2_value2/var3_value3/.../var8_value8/ и блокирование на бэке возможности выбора параметра, если в выдаче нет результатов. С блокировкой решили вопрос, а за урлами отправили к сисадмину, а он говорит надо все варианты пересечений описывать, а мне как-то не верится, что нельзя написать универсальный обработчик урл, если и имя переменной и ее значение в урл присутствуют.
    Я так понял урлы тоже на бэке лучше обрабатывать.
  • Tonno, это вообще странно.
    но даже если так, что мешает сделать domain.ru/razdel/var1/value1/var2/value2/var3/value3/.../var8/value8/
    ?
  • хотя трэш – еще тот.
  • Ну это исключительно из анализа конкурентов из ТОП-5 Яндекса в нашей тематике
    У всех топов ссылки в формате
    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
  • Tonno,

    Но я так понял, что поставил непростую задачу на разработку.

    очень простая, если ваш дев не олень.

  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Да, конечно, преобразование 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']

    $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 инъекций.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

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

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно