nginx的server_name匹配二級網域問題
我想大声告诉你
我想大声告诉你 2017-05-16 17:17:43
0
1
741

在設定nginx的時候,server_name需要設定多個二級域名,參考的這篇文章,原文http://bneijt.nl/blog/post/name-based-vi...

摘錄如下:

server {
    server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[^.]+)$;
    if ($subdomain = "") {
        set $subdomain "_";
    }
    location / {
        index index.html;
        root /srv/http/vhost/${domain}.${tld}/${subdomain};
    }
}

我的設定參考這篇稍作修改,內容如下:

server {
    server_name  ~^((?<subdomain>.*)\.)aa\.com$;
    if ($subdomain = "") {
        set $subdomain "www";
    }
        
    location / {
        root   /var/www/${subdomain}.aa.com/public;
        index  index.html index.htm;
    }
}

問題:
在subdomain為空的時候,不能轉換為www,也就是,在瀏覽器中輸入www.aa.com,可以訪問,但是直接輸入aa.com,就不能訪問,是正規表示式~^((?<subdomain>.*)\.)aa\.com$的問題還是其他問題?

我想大声告诉你
我想大声告诉你

全部回覆(1)
过去多啦不再A梦

正規改成:
~^((?.*).)?aa.com$
試試

注意,沒有在環境中驗證哈。

還有就是網域訪問,需要網域解析配置A記錄的。
www.aa.com和aa.com需要兩筆A紀錄。

最好,兩個地方都檢查一下。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板