все таки как вылечить 405 ошибку :(

Igor Sysoev is at rambler-co.ru
Wed Jun 21 14:21:43 MSD 2006


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





More information about the nginx-ru mailing list