(Ничего себе, это название отстой ... Не стесняйтесь делать предложения в комментариях или редактировать их, если у вас есть лучшие.)
У меня есть сервер с программой CGI, который получает URL-адрес в виде pathinfo, проверяет IP-адрес пользователя и перенаправляет его либо на прямой переход к этому URL-адресу (если они являются внутренними для нашей организации), либо отправляет их на URL-адрес через прокси-сервер. (если они внешние). Сам CGI прекрасно работает, но есть некоторые URL, для которых apache возвращает ошибку 404 Not Found вместо вызова скрипта. Похоже, что это связано с целевым URL, содержащим путь в кодировке URI. например,
http://myserver.org/cgi-bin/ipchk/http://other.server.org/10.1007%2F3-540-28519-9_8
возвращает 404, а
http://myserver.org/cgi-bin/ipchk/http://other.server.org/10.1007/3-540-28519-9_8
(тот же URL, но с декодированием %2F
в /
) работает правильно.
Я проверил (выводя в error_log
при запуске), что при возврате 404 скрипт ipchk
вообще не запускается. Эти ошибки определенно происходят от самого apache, а не от сценария, перенаправляющего пользователей на несуществующий URL.
Почему кодировка URL-адреса pathinfo влияет на способность apache найти сценарий ipchk и что мне нужно сделать, чтобы он передавал все /cgi-bin/ipchk/
URI в ipchk
независимо от того, что может последовать?