小編這次要給大家分享的是nginx如何用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出靈石免費(fèi)做網(wǎng)站回饋大家。
nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄
用nginx可以實(shí)現(xiàn)虛擬主機(jī)的功能,可以綁定多個(gè)網(wǎng)址。
通常主域名都是寫死在配置里面的,所以要增加匹配時(shí),需要手動(dòng)添加。
基本寫法
最基本的寫法是server{ listen 80; server_name www.a.com; root /html/a; … } server{ listen 80; server_name www.b.com; root /html/b; … }
正則式寫法
域名綁定后,自動(dòng)匹配到相應(yīng)的目錄中,不需要一個(gè)一個(gè)域名去寫配置。
匹配目錄為:html/域名/二級(jí)域名,例如www.baidu.com會(huì)匹配到baidu.com/www目錄下
server { listen 80; # $subdomain 將匹配到二級(jí)域名級(jí)以上 # $domain 將匹配到一級(jí)域名 # $tld 將匹配到根節(jié)點(diǎn)名 server_name ~^((?.*)\.)?(? [^.]+)\.(? [a-zA-Z]+)$; #如果沒(méi)有$subdomain,則跳轉(zhuǎn)到www if ($subdomain = "") { # set $subdomain "_"; set $subdomain "www"; return 301 $scheme://www.$domain.$tld$request_uri; } root /usr/share/nginx/html/${domain}.${tld}/${subdomain}; }
其他
nginx 的匹配順序,搜索一下有很多文章,我就不詳細(xì)說(shuō)了。
因?yàn)檎齽t表達(dá)式的匹配優(yōu)先級(jí)最低,只有當(dāng)其他都匹配不到時(shí)才會(huì)進(jìn)行正則表達(dá)式的匹配,所以不用擔(dān)心影響其他的精確匹配。
一般人不會(huì)有那么多的域名要匹配,相反,是要屏蔽掉一些惡意的域名指向。
但是測(cè)試的時(shí)候,為了不影響正在運(yùn)行的網(wǎng)頁(yè),可以在hosts中添中一條ip 域名記錄,用不存在的域名來(lái)測(cè)試,這時(shí)候就比較有用了。
看完這篇關(guān)于nginx如何用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的文章,如果覺(jué)得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。