У меня есть веб-сайт, на котором мне нужно изменить структуру URL-адресов. Старые URL-адреса выглядят так /olddir/part1_de.htm
, новые будут выглядеть как /newdir/sub/category/anotherpage.htm
. Мне нужно сделать много перезаписей URL-адресов, я предполагаю, что в итоге будет около 500 отдельных перезаписей.
Поскольку мой веб-сайт получает довольно много трафика, меня больше всего беспокоит производительность. Мои вопросы:
Вы можете найти модуль карты чтобы работать лучше, особенно если большинство URL-адресов не обязательно должны быть регулярными выражениями. Например (не проверено):
map $uri $new {
/olddir/part1_de.htm /newdir/sub/category/anotherpage.htm;
~^/olddir/part(?<num>[0-9]+)_en.htm$ /newdir/sub/category/part$num;
...
}
if ($new) {
rewrite ^ $new permanent;
}
Nginx компилирует свою конфигурацию в своего рода двоичное дерево во время первоначального запуска или перезагрузки конфигурации (не с каждым запросом). Таким образом, можно использовать перезапись, но рекомендуемый вариант и лучшая практика - по возможности использовать директиву try_files.