Вот кусок моего конфига:
if ($request_method != POST) {
rewrite ^(.*)$ /nonPOST? break;
}
location = /nonPOST {
internal;
if ($request_uri = '/cgi-bin/index.pl') {
rewrite ^(.*)$ /index.pl? last;
}
if ($request_uri = '/cgi-bin/index2.pl?action="" {
rewrite ^(.*)$ /index2.pl_action_do? last;
}
rewrite ^(.*)$ $request_uri break;
proxy_pass
http://backend;
proxy_redirect off;
proxy_set_header Host $host;
}
location = /index.pl {
types { }
default_type text/html;
root /site/apache/share/virthosts/clones.joblist.ru/Data/static/$host;
internal;
}
location = /index2.pl_action_do {
types { }
default_type text/html;
root /site/apache/share/virthosts/clones.joblist.ru/Data/static/$host;
internal;
}
То, что идея в текущем виде не работает (отвечает 405) - это пока отложим :)
Но вот что я заметил
конечно же апач говорит 404 на такие запросы. Почему экранируется знако вопроса? Похожий баг был исправлен в 0.5.35, у меня как раз эта версия. Это не может быть как-то связано?