все таки как вылечить 405 ошибку :(
Michail Baikov
lists at baikov.com
Wed Jun 21 14:32:54 MSD 2006
Igor Sysoev wrote:
> 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
>
>
Все - разобрался. Спасибо.
--
Mike Baikov <mike at baikov dot com>
GameDot Labs Developer
More information about the nginx-ru
mailing list