我有一个网站,我需要改变的url结构。 旧url看起来像/olddir/part1_de.htm ,新url看起来像/newdir/sub/category/anotherpage.htm 。 有很多我需要做的URL重写,最后我假设大概有500个不同的重写。
由于我的网站stream量很大,我主要关心的是目前的性能。 我的问题是:
您可能会发现地图模块执行得更好,特别是如果大多数URL实际上不需要是正则expression式。 例如(未testing):
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在初始启动或configuration重载期间(不是每个请求)将其configuration编译成某种二叉树。 所以使用重写是可以的,但推荐的选项是,尽可能使用try_files指令。