Я нашел решение, которое работает для моих нужд.
Кажется, что Apache действительно хочет вытянуть строку запроса в набор параметров, что является нормальным.
Для того, чтобы перенести один на Apache, я только что заменил? в строке с |. Как только я это сделал, он больше не видел строку как строку запроса. Так как параметры не имеют значения в моем случае, он работает нормально. Все, что мне нужно сделать, это убедиться, что я записал имя файла с каналом вместо знака вопроса. Достаточно просто.
Не стесняйтесь комментировать, если у вас есть лучшее решение.
Вот правило, которое делает это для меня. Так как Apache не распознает результат как MIME, который он знает, я заставляю его text / html.
RewriteRule ^(.+)$ /site_root/cache/%{HTTP_HOST}$1|%{QUERY_STRING} [L,T=text/html]