2016-08-14 127 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