Выходящие пробелы в mod_rewrite
-
05-07-2019 - |
Вопрос
У меня есть следующее правило Apache mod_rewrite:
RewriteRule ^(.*) http://127.0.0.1:4321/$1 [proxy]
Это прекрасно работает; Apache перенаправляет все запросы на сервер CherryPy, который я запускаю на той же машине.
К сожалению, у меня проблемы с путями, в которых есть пробел. Если я сделаю запрос на /Sites/some%20site/image.png
, то Apache сделает запрос к CherryPy для / Sites / some site / image.png
, что приведет к ошибке CherryPy.
Есть ли способ указать в моем RewriteRule, что я хотел бы повторно экранировать пробелы в URL-адресе перед отправкой запроса в CherryPy?
РЕДАКТИРОВАТЬ: я нашел ссылку на что-то, что может помочь , но я пошел опередив проблему, заменив пробелы подчеркиванием и заставив CherryPy выполнить преобразование перед обслуживанием файлов.
Я все еще хотел бы знать лучшее решение, если у кого-то есть такое; к сожалению, я нахожусь в крайнем сроке и не имею времени разбираться с этим сам в данный момент. Я могу вернуться к этому позже и опубликовать дальнейшие обновления, когда найду время.
Решение
Смотрите http://tools.cherrypy.org/wiki/ModRewrite#Bewaretheencodingbug для самого известного решения.