Q1: У меня есть существующий API, использующий формат https://sub1.domain.com/whatever?test=yes на поддомене sub1, но теперь я хочу переключиться на поддомен sub2 и такой формат, как https://sub2.domain.com/v2/page/embed?new=1
Старые запросы должны по-прежнему работать, но должны быть «перенаправлены» или «перенаправлены» в новый формат запроса и другой субдомен. В идеале это должно происходить незаметно (незаметно за кулисами) и не требует, чтобы cURL следил за перенаправлениями, если это не является неизбежным.
Q2: В качестве альтернативы я мог бы пойти на компромисс, отвечая на запросы API для https://sub1.domain.com/whatever?test=yes используя тот же формат, но «пересылать» или «перенаправлять» на новый субдомен, например https://sub2.domain.com/whatever?test=yes
Дело в том, что 25000+ пользователей с устаревшим форматом не должны будут обновлять свой код, чтобы в конечном итоге обслуживаться с нового сервера на sub2, и предпочтительно с использованием нового формата (что устраняет необходимость поддерживать два набора параметров API).
Благодарю за вашу поддержку. Спасибо!
Я сам мог найти ответы. Это кому-то поможет в будущем.
Для Q1:
location / {
if ($arg_test ~* yes) {
return 301 https://sub2.domain.com/v2/page/embed?new=1;
}
}
Для Q2:
location / {
if ($arg_test ~* yes) {
rewrite ^(.*)$ https://sub2.domain.com$1;
}
}
Я сам мог найти ответы. Это кому-то поможет в будущем.
Для Q1:
location / {
if ($arg_test ~* yes) {
return 301 https://sub2.domain.com/v2/page/embed?new=1;
}
}
Для Q2:
location / {
if ($arg_test ~* yes) {
rewrite ^(.*)$ https://sub2.domain.com$1;
}
}
Ты можешь использовать:
server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ newpage permanent;
}