如何配置Nginx重定向

时间:2018-09-11 06:23:02

标签: nginx url-rewriting return webserver url-rewrite-module

我已经在Nginx Web服务器中配置了我的域,现在我想将所有请求重定向到主域。

例如:1)http://www.example.com/blogs/articles应该重定向到http://www.example.com

2)http://www.example.com/wp/history应该重定向到http://www.example.com/products/file

请帮助我做到这一点。

2 个答案:

答案 0 :(得分:0)

恐怕这是一个坏习惯。相反,您应该将所有请求发送到PHP文件(或对等文件),然后从那里重定向。

答案 1 :(得分:0)

目前尚不清楚您到底想做什么。 我的意思是重定向的规律性尚不清楚。

这里是一篇文章。也许会有所帮助。 https://bjornjohansen.no/nginx-redirect

最好不要在服务器配置中进行很多单一重定向,因为它可能非常复杂且不灵活。

与此同时,做到这一点的“愚蠢”方式:

使用地图

如果您有要以不同方式重定向的URL或正则表达式列表,则应使用地图进行查找,为方便起见,可以将其很好地定义在一个单独的文件中。只需注意地图定义必须在服务器块之外:

include redirect-map.conf;

server {
    […]
    if ( $redirect_uri ) {
        return 301 $redirect_uri;
    }
}

文件redirect-map.conf可能看起来像这样:

map $request_uri $redirect_uri {
    /about.html          /about-us;
    /customers.html      /our-customers;
    /products.html       /our-products;
}

请注意以下摘录的文档: