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

Ссылка скопирована
25 апреля 2026 1 ответ

Есть сервис для ответов на запросы Андроид приложения(NGINX + PHP). Требуется определенный запрос перенаправлять на другой адрес (домен с другогим сервисом), в конфигурации NGINX прописал такой location

location /addservices { return 301 https://addservices.com$request_uri; }

location /addservices { return 301 https://addservices.com$request_uri; }

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

В http запросах информация передается как в Заголовках, так и в Теле запроса.
Или redirect используется исключительно для браузеров

Дополнительно:

Ответы:

Если приложение ожидает 200 кода и не умеет ходить по редиректам - так работать и не будет. В любом случае, нужно больше конкретики - что за ошибка, какой в приложении используется http-клиент и т. д.

  • Переустановил APK (видимо КЭШ отчистил) и начал работать redirect
    Но первое перенаправление подменяет все запросы с данным адресом https://addservices.com
    требуется не все запросы перепнаправлять, а только часть, а пару запросов пускать через себя

Если клиент делает POST-запрос (на это указывают данные в теле запроса) - то делать redirect просто нельзя. Можно redirect-нуть GET-запрос, в нём все параметры в самом URL, но не POST-запрос.

P.S. Реагировать или нет на 301/302 - решает сам клиент (приложение или браузер).

  • Здравствуйте, все запросы GET.
    Переустановил приложение на андроид (видимо Кэширует адрес, при каждой проверке теперь Очищаю Данные приложения Андроид) и начал работать Redirect, но работает не так как надо.
    После первого редирект https://addservices.com/com/ - начинает ВСЕ запросы слать на
    https://addservices.com/add/
    https://addservices.com/java/
    https://addservices.com/css/
    Требуется перенаправить ВСЕ запросы кроме Одного Пути:
    https://addservices.com/path/****/ -> Его требуется обработать и только после этого отправить
  • Алексей Денисов, непонятно написали. Напишите подробно, тщательно проверяя написанное:
    с какого URL и на какой URL должно перенаправлять?

Попробуйте сделать проксирование через ваш сервер. Внешнего редиректа не будет, сам сервер сходит на сторонний адрес, сделает от себя запрос, получит ответ и вернёт ответ обратно.

  • Здравствуйте, как это можно сделать,
    proxy_pass ?
    (требуется передавать Заголовки и Тело запроса)
  • Алексей Денисов, мда, тоже вариант. Если приложение кеширует редиректы, то ничего хорошего не получится. И лучше написать простейший скрипт redir.php, который будет сам обращаться на удалённый web-сервер, брать информацию и отдавать её клиенту.

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

Нужно решить такую задачу?

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

Заказать помощь
Лучший ответ
2
Анна SEO Ответ

Redirect301 на nginx - это инструкция, которая выполняет постоянное перенаправление запросов с одного URL на другой. Это полезно, когда вы хотите изменить адрес вашего сайта или переместить контент на другую страницу.

Для того чтобы настроить redirect301 на nginx, вам необходимо отредактировать конфигурационный файл вашего сервера. Вот пример того, как это можно сделать:

1. Откройте конфигурационный файл вашего сервера (обычно находится в /etc/nginx/nginx.conf или /etc/nginx/sites-available/default).
2. Найдите блок server {} и добавьте следующую строку внутри него:

```
location /old-url {
return 301 http://example.com/new-url;
}
```

3. Замените /old-url на URL страницы, с которой хотите перенаправить, и http://example.com/new-url на новый URL, на который хотите перенаправить.
4. После внесения изменений в конфигурационный файл, сохраните его и перезапустите сервер nginx командой:

```
sudo systemctl restart nginx
```

Теперь запросы к /old-url будут автоматически перенаправляться на http://example.com/new-url с помощью кода ответа 301 (постоянное перенаправление).

Надеюсь, это поможет вам настроить redirect301 на вашем сервере nginx! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно