在NGINX中管理许多(~200)自定义重写的正确方法

在NGINX中管理许多(~200)自定义重写的正确方法,nginx,rewrite,Nginx,Rewrite,请帮我以最好的方式解决这个问题 我正在完全改变我的网站结构,我无法使用正则表达式进行重写,因为这样的URL(~200个URL): 那么,设置这么多自定义重定向的正确方法是什么? 如果NGINX每次访问服务器都要“扫描”200行重写,这样可以吗 我看到了一个有点类似的问题和答案: 但是,在我的例子中,URL是完全不同的——没有一个我可以用来“调用函数还是不调用函数”的部分(例如,index.php?) 如果错误,请告诉我,在我的情况下,使用后端(PHP)每次调用搜索匹配项并不是最好(最快)的解决

请帮我以最好的方式解决这个问题

我正在完全改变我的网站结构,我无法使用正则表达式进行重写,因为这样的URL(~200个URL):

那么,设置这么多自定义重定向的正确方法是什么? 如果NGINX每次访问服务器都要“扫描”200行重写,这样可以吗

我看到了一个有点类似的问题和答案:

但是,在我的例子中,URL是完全不同的——没有一个我可以用来“调用函数还是不调用函数”的部分(例如,index.php?)
如果错误,请告诉我,在我的情况下,使用后端(PHP)每次调用搜索匹配项并不是最好(最快)的解决方案。

在我看来,最好在应用程序中有这样的应用程序逻辑,因此第一个在应用程序中有这样重定向的解决方案

如果您真的想在nginx中使用这些重定向,我建议将它们作为单独的文件包含在主服务器文件中。诸如此类:

location /a-page-about-something/ {
    return 301 /completely-different-name-of-a-page-about-something/;
}

location /another-page/ {
    return 301 /second-page/;
}
#... and so on

如果您只需要完全匹配
位置
块,那么效率会更高。您的意思是,比后端(PHP)更高?好的,如果我要使用NGINX,最好的方法是写单独的位置还是有其他更好的技术?我对NGINX不太了解……是的,在谷歌搜索和思考之后,我决定完全按照这种方式来做。已经做过了,很完美。非常感谢。
location /a-page-about-something/ {
    return 301 /completely-different-name-of-a-page-about-something/;
}

location /another-page/ {
    return 301 /second-page/;
}
#... and so on