Re: rewrite-правила для pre-build динамики - странное экранирование

Igor Zakharov garikz at gmail.com
Thu Jan 31 14:32:47 MSK 2008


Вот кусок моего конфига:

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=do') {
    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) - это пока отложим :)

Но вот что я заметил
в логах на бэкенде для запросов, не попавших под эти правила:

[31/Jan/2008:10:56:12 +0000] "GET /cgi-bin/index2.pl%3faction=agency
HTTP/1.0"
[31/Jan/2008:11:11:44 +0000] "GET /cgi-bin/story.pl%3faction=success
HTTP/1.0"

конечно же апач говорит 404 на такие запросы. Почему экранируется знако
вопроса? Похожий баг был исправлен в 0.5.35, у меня как раз эта
версия. Это не может быть как-то
связано?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080131/892efaa0/attachment.html>


More information about the nginx-ru mailing list