Несколько постов здесь предполагают неправильное использование ОП, что неверно.
Расширяя комментарий Sam152, строки запроса могут содержать оба? и / символы, см. раздел 3.4 из http://www.ietf.org/rfc/rfc3986.txt,, который в основном представляет собой спецификацию, написанную Тимом Бернерсом-Ли и его друзьями, регулирующими работу сети.
Проблема в том, что плохо написанные (или плохо настроенные, или неправильно используемые) парсеры интерпретируют косые черты строки запроса как разделяющие компоненты пути.
Я видел примеры использования PHP-функции pathinfo для анализа URL. Pathinfo не был написан для разбора URL. Однако вы можете извлечь путь с помощью parse_url, а затем использовать fileinfo для получения подробностей из пути. Вы увидите, что parse_url обрабатывает / и? в строках запроса просто отлично.
В любом случае, общая проблема заключается в том, что эта область плохо понимается всесторонне, даже среди опытных разработчиков, и большинство людей (включая меня до недавнего времени) просто предполагают, что что-либо после имени файла должно быть закодировано, что явно false, если вы принимаете во внимание стандарты.
tl; dr Прочтите спецификацию:)