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

时间:2014-03-21 07:03:50

标签: nginx rewrite

请帮助我以最好的方式解决问题。

我正在彻底改变我的网站结构,并且我无法使用正则表达式重写,因为这样的网址(~200个网址):

from
    mysite.com/a-page-about-something/
to
    mysite.com/completely-different-name-of-a-page-about-something/

那么,设置如此大量的自定义重定向的正确方法是什么? 是否可以,如果NGINX将“扫描”200行重写每次访问服务器?

我看到了这个 - 有点类似的问答: Using nginx rewrite with many individual URLs

但是,在我的情况下,网址是完全不同的 - 没有我可以用来“调用函数或不调用”的部分(例如,“index.php?”) 而且,告诉我如果错了,使用后端(PHP)搜索匹配的每个调用都不是我案例的最佳(最快)解决方案。

1 个答案:

答案 0 :(得分:2)

在我看来,在您的应用程序中使用此类应用程序逻辑会更好,因此第一个在您的应用程序中具有此类重定向的解决方案。

如果你真的想在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