nginx server_name 規則:
1.確切的server_name匹配
例如:
server { listen 80; server_name www.luwen.cc luwen.cc; ... }
2.以*通配符開始的最長字符串
server { listen 80; server_name *.luwen.cc; ... }
3.以*通配符結束的最長字符串
server { listen 80; server_name www.*; ... }
這兩條有兩個特別要注意的事項:
通配符名字只可以在名字的起始處或結尾處包含一個星號,並且星號與其他字符之間用點分隔。所以,“www.*.luwen.cc
”和“w*.luwen.cc
”都是非法的。
4.匹配正則表達式
server { listen 80; server_name ~^(.+)-www\.luwen\.cc$; ... }
server_name正則表達式應用:
server_name指令一項很實用的功能便是可以在使用正則表達式的捕獲功能.nginx使用的正則表達式兼容PCRE。為了使用正則表達式,虛擬主機名必須以波浪線“~”起始否則該名字會被認為是個確切的名字:
如上4
如果表達式含星號,則會被認為是個通配符名字(而且很可能是一個非法的通配符名字)。不要忘記設置“^
”和“$
”錨點,語法上它們不是必須的,但是邏輯上是的。同時需要注意的是,域 名中的點“.”需要用反斜線“\”轉義。含有“{
”和“}
”的正則表達式需要被引用,
如上4