Мне нужно переписать старые адреса на новые с помощью nginx rewrite. У меня одна проблема со строкой запроса. Перенаправление не работает, если старый URL имеет параметр строки запроса. Моя текущая конфигурация:
map $request_uri $newuri {
/old-url/path /new-url/path;
}
server {
location / {
if ($newuri) {
return 301 $newuri;
}
}
}
Ваш оператор map
выполняет сопоставление строки на $ request_uri
. Переменная $ request_uri
также включает строку запроса. Если вы хотите сопоставить со строкой запроса или без нее, вам следует сопоставить только перед $ request_uri
, что может быть выполнено с использованием синтаксиса регулярного выражения :
map $request_uri $newuri {
~*^/old-url/path /new-url/path;
}