ПРОЕКТЫ 


  АРХИВ 


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 ошибку :(



On Wed, 21 Jun 2006, Michail Baikov wrote:

Igor Sysoev wrote:
On Wed, 21 Jun 2006, Michail Baikov wrote:



я сделал:

        location /service/ {
            rewrite  /service/  /service/index.php  last;
        }

#        location / {
#            root                /var/www/xxxxxxxx.ru/htdocs;
#            index               index.php index.html index.htm;
#        }




Оказалось - что отвалилился новый вариант обработки. :(

location /service/ {
    rewrite             ^/service/\?(.*)$  /service/index.php?$1  last;
}


Все равно при POST с параметрами ?list выводится 405 ошибка :(

Что тут не так? Пробовал и break...

Если нужно делать внутренний редирект только для /service/, то

location = /service/ {
     rewrite  ^           /service/index.php  last;
     или
     rewrite  ^/service/  /service/index.php  last;
}

В исходном URI не нужно указывать аргументы ( \?(.*)$ ).

Этот вариант не работает.
Объясню конкретно проблему.


Клиент посылает запрос:

<form method="post" action="/service/?list">
<input type="submit">
</form>

ессно nginx сваливается с 405 ошибкой.

Как сделать чтобы данная форма корректно обрабатывалась. Можно менять
конфигурацию nginx - можно менять серверную часть кода.

Эту форму изменять нельзя.

Была мысль сделать с помощью rewrite вызов /service/list.php - но что-то
не получается.

Какой скрипт в кончном этоге должен обрабатывать "/service/?list" ?
Если /service/index.php, то нужно

location = /service/ {
     rewrite  ^           /service/index.php  last;
     или
     rewrite  ^/service/  /service/index.php  last;
}


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.