Путь запроса: HTTP: // локальный/1/2/# Пример/
print_r($_SERVER['REQUEST_URI']);
Ожидаемое: /1/2/# Пример/
Фактический:/1/2/
Использование urldecode
не имеет никакого эффекта, потому что PHP создает массив с самого начала. Да, это не ортодоксальное имя каталога, хотя есть ли другой способ определить запрошенный URI в PHP?
Если это фактическая папка с именем '# Example', вам нужно будет указать urlencode хеш в ссылке на эту страницу, чтобы url стал'/1/2 /% 23 Example/'. Хеш URL (#whatever) никогда не отправляется на PHP. Он доступен клиентской стороне в javascript. –
См. Https://tools.ietf.org/html/rfc3986#section-3.5 «... идентификатор фрагмента не используется в обработке для обработки URI; вместо этого идентификатор фрагмента разделяется от остальной части URI до разыменования, и поэтому идентификационная информация внутри самого фрагмента разыменовывается исключительно пользовательским агентом, независимо от схемы URI. «Это никогда не отправляется на server – Reeno