2016-08-14 167 views
1

我有一个主域(example.com)和多个域(example.netexample1.infoexample2.info):NGINX重定向所有路径指向一个位置在NGINX配置像这样的特定路径

server { 
    server_name example.com *.com *.net *.info; 
    root /home/example.com/public; 
} 

我想将特定路径/login重定向到example.com/login,我该如何完成它?如果我做

server { 
    server_name example.com *.com *.net *.info; 
    root /home/example.com/public; 

    location = /login { 
    return 301 https://example.com/login; 
} 

这项工作的所有领域,除example.com/login,因为它使重定向到自身。

创建从所有站点上的特定路径到我选择的路径的重定向的正确方法是什么?

回答

1

从一个站点重定向到另一个站点的最简单逻辑是使用自己的服务器块来隔离目标站点。通过使用include语句,可以将常用配置导入到两个服务器块中。

我会使用默认的服务器模块,而不是一长串通配符。

事情是这样的:

server { 
    listen 80 default_server; 
    listen 443 ssl default_server; 

    include /path/to/common/config; 

    location = /login { 
     return 301 https://example.com/login; 
    } 
} 

server { 
    listen 443 ssl; 

    server_name example.com; 

    include /path/to/common/config; 
} 

详见this document

相关问题