PHP-скрипт с акцентированными символами или пробелами в пути к имени файла, не найденный ApacheApache

Ответить
Anonymous
 PHP-скрипт с акцентированными символами или пробелами в пути к имени файла, не найденный Apache

Сообщение Anonymous »

На моем веб-сервере Apache есть несколько путей (в файловой системе), которые содержат пробелы или символы с диакритическими знаками, например é, á или ö. Веб-сервер возвращает «Файл не найден». если (1) путь содержит пробел или один из акцентированных символов и (2) полученный файл является скриптом php. Если в пути нет ни одного из этих символов, то php-скрипт выполняется корректно, а также если в пути есть эти символы, но загружается html-файл.
Я сделал минимальный пример с двумя путями, единственной разницей которых является буква «e» или «é» в пути, и оба содержат одни и те же файлы php и html. Их получение отображается в журнале ssl_access_log:

Код: Выделить всё

192.168.178.11 - MM [12/Oct/2024:21:49:47 +0200] "GET /test/urlenc_w_php/e/index.php HTTP/1.1" 200 360
192.168.178.11 - MM [12/Oct/2024:21:49:51 +0200] "GET /test/urlenc_w_php/e/index.html HTTP/1.1" 304 -
192.168.178.11 - MM [12/Oct/2024:21:49:54 +0200] "GET /test/urlenc_w_php/%C3%A9/index.php HTTP/1.1" 404 16
192.168.178.11 - MM [12/Oct/2024:21:49:56 +0200] "GET /test/urlenc_w_php/%C3%A9/index.html HTTP/1.1" 304 -

где %C3%A9 — это закодированная буква «é». Приведенные выше строки показывают, что комбинация «é» в пути и скрипте php дает 404.
Я подозреваю проблему с кодировкой, но понятия не имею, как ее диагностировать или исправить.
Может быть актуально: «Файл не найден». Сообщение отличается от того, когда я вводю URL-адрес, указывающий на файл, которого на самом деле не существует. В этом
случае я получаю сообщение «Не найден». «Запрошенный URL-адрес не найден на этом сервере». который, очевидно, генерируется другим процессом.
Код PHP (хотя не уверен, имеет ли он значение): Файл HTML точно такой же, как и то, что выводится кодом PHP.

Подробнее здесь: https://stackoverflow.com/questions/790 ... nd-by-apac
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»