LINUX.ORG.RU
ФорумAdmin

NGINX 302

 


0

2

сейчас nginx при 302 возвращает стандартный заголовок и тело html. Выглядит это как-то так

<html> <head><title>302 Found</title></head> <body bgcolor=«white»> <center><h1>302 Found</h1></center> <hr><center>nginx/1.6.3</center> </body> </html>

Можно ли заменить этот ответ заменить на другой ?

P.S. чтоб не было вопросов зачем, пишу , нужно для WISPr. чтоб редиректить клиентов на портал

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

Ответ на: комментарий от melkor217

нее , не хочет он этого делать

error_page 302 /302.html; location = /302.html { root /usr/share/nginx/html; }

rewrite ^(.*)$ http://mail.ru redirect;

вот с таким конфигом, возвращает стандартный ответ

Deleted
()

Дядя, 302 это не показ страницы, а указание куда ломиться клиенту. Какие страницы ты там показывать хотел? Эту шляпу вообще без тела документа можно от сервера возвращать, на что клиента должен СРАЗУ посмотреть куда указывает локейшн и пойти туда:

HTTP/1.1 302 Found
Location: http://domain.tld/foo/bar/

http://en.wikipedia.org/wiki/HTTP_302

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Ну прочти для чего это нужно , есть драфт документа где описано как это работает , не нужно меня в википедию тыкать.

Deleted
()
Ответ на: комментарий от Deleted

А кто у тебя локейшн (куда ломиться) должен предоставить? Сам нжинкс по определенному условию или какая-то шляпа-прокси-бекенд?

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

так в том-то и дело , что никаких условий,

вот вся конфигурация которая мне нужна rewrite ^(.*)$ http://portal redirect; .

т.е. все запросы приходящие на 80й порт должны редиректиться .

в ответ должен встраиваться ответ

<html>
<--
<?xml version="1.0" encoding="UTF-8"?>
<WISPAccessGatewayParam
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.wballiance.net/wispr_2_0.xsd">
    <Redirect>
    <MessageType>100</MessageType>
    <ResponseCode>0</ResponseCode>
    <AccessProcedure>1.0</AccessProcedure>
    <AccessLocation>isocc=,cc=,ac=,network=Coova,</AccessLocation>
    <LocationName>pups</LocationName>
    <LoginURL>http://portal</LoginURL>
    <AbortLoginURL>http://portal</AbortLoginURL>
    </Redirect>
</WISPAccessGatewayParam>

--/>
</html>

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Агась, ну тогда я не могу придумать ничего кроме как поднять какой-нить бекенд, который будет отдавать 302-е заголовки и нужное тело ответа на любой запрос в его локейшн.

А вот если бы просто редирект без тела, как и должно бы, тогда примерно вот так:

location / {
    error_page 302 = @foo;
    # тут твои условия, но их нет, сразу вернем статус
    return 302;
}
location @foo {
    rewrite ^ $scheme://domain.tld$request_uri;
}
deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Ок , спасибо , буду пробовать , может то еще интересное придет в голову

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.