Denisov80
@Denisov80
Юный Программист

Как работает redirect301 на nginx?

Есть сервис для ответов на запросы Андроид приложения(NGINX + PHP). Требуется определенный запрос перенаправлять на другой адрес (домен с другогим сервисом), в конфигурации NGINX прописал такой location
location /addservices {
return 301 https://addservices.com$request_uri;
}


При выполнении запроса из приложения для андроид, выдает ошибку.
Если вводить данный адрес в браузере, то страница загружается нормально.

В http запросах информация передается как в Заголовках, так и в Теле запроса.
Или redirect используется исключительно для браузеров
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 4
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Если приложение ожидает 200 кода и не умеет ходить по редиректам - так работать и не будет. В любом случае, нужно больше конкретики - что за ошибка, какой в приложении используется http-клиент и т. д.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Если клиент делает POST-запрос (на это указывают данные в теле запроса) - то делать redirect просто нельзя. Можно redirect-нуть GET-запрос, в нём все параметры в самом URL, но не POST-запрос.

P.S. Реагировать или нет на 301/302 - решает сам клиент (приложение или браузер).
Ответ написан
@alekssamos
Программист любитель
Попробуйте сделать проксирование через ваш сервер. Внешнего редиректа не будет, сам сервер сходит на сторонний адрес, сделает от себя запрос, получит ответ и вернёт ответ обратно.
Ответ написан
Denisov80
@Denisov80 Автор вопроса
Юный Программист
В андроид приложении есть веб каталог, запускается как будто в встроенном браузере, запросы шлёт на отдельный сервер: addservices.com

1) addservices.com/com
2) addservices.com/css
3) addservices.com/java
4) addservices.com/path

В приложении адрес:
addservices.com
Исправил на свой:
myadress.com

В настройках сервеа установил 301 редирект на
addservices.com/com, так как это первый запрос, в приложение приходит ответ с перенаправлением на оригинальный адрес и все дальнейшие запросы идут на оригинальный адрес, мимо моего сервера.

Мне требуется только этот запрос обработать (прописать в нем данные моего логина на данном сервисе):
addservices.com/path
Отправить на оригинальный адрес и ответ вернут клиенту , но как только вернул 301 редирект на ори адрес, тотыче отсталые запросы иудт на оригинальный сервер, мимо меня.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы