ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 405 Not Allowed в Php скрипте.Post запрос



2010/7/22 No1 <nginx-forum@xxxxxxxx>:
> Подскажите тогда как его выгнать из
> статического локейшена.

location / {
  root ...;
  # обратите внимание, index index.php нет. Все запросы со слешом
(директории) "не найдутся" и уйдут в @php.
  try_files $uri @php;
}

location @php {
  fastcgi_pass   backend;
  fastcgi_index  index.php;
  ...
}

В данном случае fastcgi_index нужен. (А у вас был не нужен, потому что
в location ~ \.php$ запросы оканчивающиеся на / не попадали)

> И где почитать что же значит index index.php в
> данном локейшене.Делится на статику(index
> index.php) и динамику (fcgi_index
> index.php)получается?
>

http://sysoev.ru/nginx/docs/http/ngx_http_index_module.html
здесь

Что было и могло быть:
1) Пришёл запрос /basket/?st=1, ну без аргументов /basket/.
2) попал в location /
3) поскольку в локейшне нет *_pass, то он "статический". Отработала
проверка "POST в статику" и вы получили 405
4) index index.php; делает внутренний редирект на /basket/index.php
5) запрос попадает в location ~ \.php$
6) поскольку в локейшне есть *_pass, то он "не статический", проверять
на POST не надо
7) запрос уходит бекенду.

Видимо, вы ожидали, что проверка 3) будет сделана после редиректа 4).
Я бы тоже так ожидал. Но сделано иначе.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.