На самом деле в стандарте неясно указано ( RFC 3986 ), должна ли версия с кодировкой в процентах .
или ..
иметь одинаковую this-folder / up-a-папка, означающая неэкранированную версию.В разделе 3.3 говорится только о «сегментах пути .
и ..
», не уточняя, соответствуют ли они .
и ..
до или после кодирования pct.
Лично я нахожу интерпретацию Firefox о том, что %2E
не означает .
наиболее практичный, но, к сожалению, все другие браузеры не согласны.Это означало бы, что у вас не может быть компонента пути, содержащего только .
или ..
.
Я думаю, что единственное возможное предложение - «не делай этого»!Существуют и другие компоненты пути, которые также вызывают проблемы, как правило, из-за ограничений сервера: последовательности %2F
, %00
и %5C
в путях также могут быть заблокированы некоторыми веб-серверами, и пустой сегмент пути также может вызвать проблемы.Поэтому в общем случае невозможно вписать все возможные последовательности байтов в компонент пути.