У меня есть сайт, который только что перешел с одного сервера на другой. На старом сервере get-параметры запроса автоматически «декодируются по URL». Теперь на моем новом сервере, когда я пытаюсь получить параметр GET, я получаю не декодированное значение URL, а кодированное значение.
Поскольку кроме сервера ничего в моем проекте не изменилось, это заставляет меня думать, что это настройка PHP (может быть, в php.ini?).
Как я могу заставить PHP автоматически декодировать мои значения параметров GET?
Я только что столкнулся с той же проблемой, и это произошло из-за правила переписывания Apache на новом сервере, который не существовал на старом сервере. Правило перекодировало уже закодированный URL. Мне повезло, что я заметил быстрое изменение URL-адреса на вкладке Chrome Developer Network и понял, что перенаправление должно быть ответственно.
В моем случае решение было полностью удалить .htaccess
файл, содержащий правило, но такое изменение также могло быть вызвано правилами в файлах конфигурации сервера Apache.
В случае, если правило перезаписи присутствует, но необходимо, можно отключить кодировку URL, добавив NE
(Побег невозможен) переписать флаги.
Других решений пока нет …