Назад | Перейти на главную страницу

Как выполнять множественные перенаправления с помощью оператора if в nginx

Итак, мой вопрос наполовину ориентирован на SEO, наполовину технический: у меня много ссылок для перенаправления, и вместо того, чтобы делать их одну за другой, я спрашивал себя:

Есть ли способ написать такое правило перезаписи (это чистая выдумка и не может использоваться на nginx)

rewrite /america/(.*)/ http://www.example/nort-america/$1/ permanent;
if 500 rewrite /america/(.*)/ http://www.example/south-america/$1/ permanent;

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

Возможно ли это и, кроме того, подходит ли это для SEO?

Вы не можете добиться того, чего хотите, только с nginx.

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

Вы также можете заставить скрипт попытаться получить альтернативные параметры с помощью curl, однако это создает ненужный трафик на веб-сайте и замедляет отправку перенаправления.