如何在Nginx中重定向主域的所有子域?在Nginx中動態301將子域重定向到主域
aaa.domain1.com - > domain1.com
www.domain2.com - > domain2.com
bbb.domain3.com - > domain3.com
server_name *.domain1.com *.domain2.com *.domain3.com *.domain4.com;
return 301 http://XXX$request_uri;
如何在Nginx中重定向主域的所有子域?在Nginx中動態301將子域重定向到主域
aaa.domain1.com - > domain1.com
www.domain2.com - > domain2.com
bbb.domain3.com - > domain3.com
server_name *.domain1.com *.domain2.com *.domain3.com *.domain4.com;
return 301 http://XXX$request_uri;
你可以嘗試像
server {
listen ....;
server_name ~^.*\.?(?<domain>.+\.com)$;
return 301 http://$domain$request_uri;
}
這將檢查它有任何服務器名稱:
^.*\.?
)(?<domain>.+\.com)$
)的?<domain>
保存主域 .COM在變量,所以你可以在return語句中使用它(domain1.com,domain2.com等)。
注意:我沒有測試這個,但希望你能看到這個例子中的概念。
解決方案是使用[正則表達式服務器名稱](http://nginx.org/en/docs/http/server_names.html#regex_names)在'return'語句中捕獲您需要的部分域。 –