Перейти к содержанию

Лидеры

  1. Tom

    Tom

    Разработчик


    • Баллы

      2

    • Постов

      227


  2. Blast

    Blast

    Разработчик


    • Баллы

      2

    • Постов

      75


Популярный контент

Показан контент с высокой репутацией 28.10.2024 во всех областях

  1. прислал заказчик инфу, что при переходе на сайт по ссылке с Яндекс.товаров сайт отдает 403 ошибку. общение с хостером ничего не дало, начал выяснять в чем тут дело. в url добавляется utm метка utm_referrer=https://yandex.ru/products/search?text=текст на сервак естественно приходит перекодированный вариант вида https://domain/path-to-product?utm_referrer=https%3A%2F%2Fyandex.ru%2Fproducts%2Fsearch%3Ftext%3D%D1%82%D0%B5%D0%BA%D1%81%D1%82 методом проб выяснил что если заменить %3F на что-то другое, то сайт вполне работает. похоже, что обновление безопасности апача запретило использовать hex-перекодированный символ "?" в "%3F" в url. наткнулся на такое обсуждение https://stackoverflow.com/questions/78729429/403-forbidden-when-url-contains-get-with-encoded-question-mark-unsafeallow3f заменил в .htaccess строку RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] на RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA,UnsafeAllow3F] работать то работает, но интересно насколько это безопасно и есть ли другие решения, учитывая что и php'шный urlencode и js'овский encodeURIComponent по-прежнему кодируют этот символ в %3F
    2 балла
  2. В схожей ситуации , данное решение предложил сам хостер. Ну и как вариант от меня (так же нужно проверять). # Преобразование UTM-меток от Яндекс.Товаров RewriteCond %{QUERY_STRING} utm_referrer=https%3A%2F%2Fyandex\.ru%2Fproducts(.*) RewriteRule ^(.*)$ $1?utm_source=yandex&utm_medium=products [R=301,L] Применяет UnsafeAllow3F только для трафика с Яндекс. Сохраняет UTM-метки в исходном виде Не создает дополнительных редиректов Минимально влияет на существующую логику работы сайта
    2 балла
×
×
  • Создать...