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 редирект на ори адрес, тотыче отсталые запросы иудт на оригинальный сервер, мимо меня.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы