Я пытаюсь создать nginx 301-redirect wordpress-style foo.com/?p=123
ссылки на фиксированные URL-адреса.Безопасный/эффективный способ перенаправления nginx /? P = 123 ссылок на стиль
От If is evil и других документов, я понимаю, что наступит if
заявлений являются единственным способом для перенаправления на основе параметров, и я обнаружил, что конфигурация, как это кажется, чтобы получить работу:
location/{
root /usr/share/nginx/html;
index index.html index.htm;
}
location =/{
root /usr/share/nginx/html;
index index.html index.htm;
if ($arg_p = 4) { return 301 /2012/12/hello-world; }
if ($arg_p = 15) { return 301 /about; }
# ... a few hundred more lines like this
}
Однако я предположим, что с помощью такого типа config nginx придется вспахивать все эти операторы if
, чтобы разрешить запросы foo.com/
верхнего уровня, которые, по-видимому, не идеальны.
Что такое «правильный» способ жесткого кодирования большого списка таких перенаправлений, минимизируя опасность/стоимость if
заявлений?
Выглядит отлично, спасибо! – fenomas