Это мой первый вопрос в StackOverflow, поэтому, пожалуйста, несите меня.как сделать nginx переписать с URL-адреса с параметрами get
Nginx предлагает множество различных сайтов для нас, и у нас есть много перенаправлений от миграции клиентов от разных поставщиков и т. Д. Мы создали каталог/includes, в котором размещены файлы перенаправления для каждого домена, который мы переносим. Иногда нам нужно будет написать редирект с URL, который содержит получить параметры:
http://example.com/content/default.aspx?NewsId=28
Чтобы сделать это, мы делаем это в Nginx/включает в себя файл с именем example.com-перенаправляет
location ^~ /content/default.aspx {
if ($args ~ "NewsId=28") { rewrite^http://example.com/news? permanent; break; }
# add more statements like the one above
}
Это до сих пор отлично подходит для нас. К сожалению, нам нужно сделать то же самое, но для другого домена, который может иметь одинаковые параметры получения. И, конечно, nginx не позволяет дублировать места.
location ^~ /content/default.aspx {
if ($args ~ "NewsId=28") { rewrite^http://differentexample.org/news? permanent; break; }
}
Я пробовал пару различных решений, все из которых давали мне синтаксические ошибки. Никто в моей компании больше не является экспертом nginx, поэтому я мог бы действительно помочь в решении этой проблемы. Я добавил if ($host ~ "example.com")
в блок местоположения, и это дало мне ошибку. И я попытался добавить блок местоположения в блок if ($host ~ "example.com")
. Оба раза nginx сказал мне, что я не могу это сказать.
Обычно я нахожу свой ответ в обширной базе знаний, которая является интернетом, но, похоже, бросается в глаза на решение этой проблемы, и у нас заканчивается время, прежде чем мы запустим этого клиента.