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 не нужно указывать аргументы ( \?(.*)$ ).
>
>
> Игорь Сысоев
> http://sysoev.ru
>
>
Этот вариант не работает.
Объясню конкретно проблему.
Клиент посылает запрос:
<form method="post" action="/service/?list">
<input type="submit">
</form>
ессно nginx сваливается с 405 ошибкой.
Как сделать чтобы данная форма корректно обрабатывалась. Можно менять
конфигурацию nginx - можно менять серверную часть кода.
Эту форму изменять нельзя.
Была мысль сделать с помощью rewrite вызов /service/list.php - но что-то
не получается.
--
Mike Baikov <mike at baikov dot com>
GameDot Labs Developer