Это особый случай, я использую Apache mod_proxy перед моим котом и Apache также добавить RequestHeader с mod_headers, благодаря mod_rewrite. Если в URI есть специальные символы, они "читаются" как ISO-8859-1. Даже если я напишу жесткое специальное значение в правиле, например, «привет». Если мой файл conf сохранен как ISO-8859-1, это нормально, но если файл conf сохранен как UTF-8, это КО (é становиться Ã © во время выполнения). Я не нашел, где настроена эта кодировка. Я пробую на серверах Apache Windows и Linux. Вот конфигурационный файл:
<VirtualHost *:80>
ServerName apache.convertigo.net
ProxyPass / http://httpbin.org/anything/
ProxyPassReverse / http://httpbin.org/anything/
RewriteEngine On
RewriteRule ^(.*)$ - [E=X_REQUEST_URI:%{REQUEST_URI},E=X_REQUEST_HOST:%{HTTP_HOST},E=X_HTTPS_STATE:%{HTTPS}]
RequestHeader set x-request-uri "%{X_REQUEST_URI}e" env=X_REQUEST_URI
RequestHeader set x-request-host "%{X_REQUEST_HOST}e" env=X_REQUEST_HOST
RequestHeader set x-https-state "%{X_HTTPS_STATE}e" env=X_HTTPS_STATE
RequestHeader set x-frontal "apache"
RequestHeader set x-helo "hélo"
</VirtualHost>
Здесь тестовый URL, который повторяет URI (см. X-Request-Uri): http://apache.convertigo.net/hélo
И результат:
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "fr-FR,en-US;q=0.8,fr;q=0.6,en;q=0.4",
"Cache-Control": "max-age=0",
"Connection": "close",
"Dnt": "1",
"Host": "httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
"X-Forwarded-Host": "apache.convertigo.net",
"X-Forwarded-Server": "apache.convertigo.net",
"X-Frontal": "apache",
"X-Helo": "h\u00c3\u00a9lo",
"X-Https-State": "off",
"X-Request-Host": "apache.convertigo.net",
"X-Request-Uri": "/h\u00c3\u00a9lo"
},
"json": null,
"method": "GET",
"origin": "217.167.129.14, 54.171.110.0",
"url": "http://apache.convertigo.net/anything/h\u00e9lo"
}
Я ожидаю этого X-Request-Uri является "/ ч \ u00e9lo" (лайк url) и нет "/ ч \ u00c3 \ u00a9lo".