неработающий rewrite и работающий редирект

Sergey Averyanov asv at pallant-mobile.ru
Wed Oct 14 12:46:05 MSD 2009


В сообщении от Wednesday 14 October 2009 12:27:19 вы написали:

Отвечу сам себе :)
Похоже, грабли стороннего модуля.
http://code.google.com/p/phusion-passenger/issues/detail?id=376

Кто-нибудь такое лечил?

> Использую nginx/0.7.61 + modrails (aka passenger -- http://modrails.com) с
> такой конфигурацией:
>     server {
>         listen 80;
>         server_name foo.com;
>         server_name *.foo.com;
>         access_log /var/log/projects/foo/nginx_access.log;
>
>         location = /favicon.ico {
>             root /srv/projects/foo/rails/public;
>             access_log /var/log/projects/foo/nginx_static.log;
>         }
>
>         location ~*
> ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|
> exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$ {
>             root /srv/projects/foo/rails/public;
>             access_log /var/log/projects/foo/nginx_static.log;
>         }
>
>         location ~ ^/t?[0-9] {
>             rewrite ^/(.*) /posts/show/$1;
>         }
>
>         location / {
>                 try_files      /foo/maintenance.html
>                 @foo;
>         }
>         location @foo {
>             root /srv/projects/foo/rails/public;
>             passenger_enabled on;
>         }
>     }
>
>
> По моей логике запрос вида /25 должен быть обработан в location ~ ^/t?[0-9]
> и преобразован в /posts/show/25
> На деле этого не происходит и на бэкэнд, судя по логам Rails, уходит запрос
> /25
> Однако стоит в проблемном location заменить
> rewrite ^/(.*) /posts/show/$1;
> на
> rewrite ^/(.*) http://foo.com/posts/show/$1;
> как все начинает работать как надо, только уже через редирект, а не
> rewrite.
>
> В чем может быть проблема?


-- 
С уважением,
  Сергей Аверьянов


More information about the nginx-ru mailing list