Это пример пути скрипта, вызывающего проблему:
http://example.com/index/index/tokenID/345%250Atest
Если я попытаюсь перейти по этой ссылке на производственном сервере, я получу ошибку 404. Если я попытаюсь посетить его на локальной машине:
localhost:8080/index/index/tokenID/345%250Atest
все работает хорошо.
Оба сервера на Apache. Производственный сервер - Cent OS, localhost - Ubuntu. Похоже, что в файле Apache есть некоторая конфигурация, которую я забыл установить.
Из спецификации RFC 1738 (не последней):
Таким образом, только буквенно-цифровые символы, специальные символы «$ -_. +! * '(),» И зарезервированные символы, используемые для их зарезервированных целей, могут использоваться в незашифрованном виде в URL-адресе.
Текущая спецификация - RFC 3986
Теперь этот оператор выше относится к незакодированным символам, но ваш кодирован. Я не нашел подобного заявления.
URI состоит из ограниченного набора символов, состоящих из
цифры, буквы и несколько графических символов. Зарезервированное подмножество
эти символы могут использоваться для разграничения компонентов синтаксиса внутри
URI, в то время как остальные символы, включая как незарезервированный набор, так и те зарезервированные символы, которые не действуют как разделители, определяют каждый
идентификационные данные компонента.