Nginx虛擬主機多server_name的順序問題
Nginx配置文件中沒有相關(guān)的rewrite跳轉(zhuǎn)規(guī)則,那么就應(yīng)該是MediaWiki的PHP程序做的跳轉(zhuǎn),但是,遍歷了MediaWiki目錄下的所有文件以及查詢了MySQL數(shù)據(jù)庫中的每個表,都沒有發(fā)現(xiàn)記錄有這個域名。后來,通過查看源代碼發(fā)現(xiàn)MediaWiki是根據(jù)$_SERVER['SERVER_NAME']做的跳轉(zhuǎn),順藤摸瓜,發(fā)現(xiàn)了下列問題:
在一個Nginx虛擬主機中,可以綁定多個server_name,例如:

而server_name的先后順序的不同,對PHP程序中使用$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')獲取服務(wù)器域名是有影響的:


$_SERVER["SERVER_NAME"]或getenv('SERVER_NAME')獲取的始終將是Nginx server_name配置中的第一個域名,這一點在程序開發(fā)中需要注意。這第一個域名就相當于Apache虛擬主機配置中的ServerName,后面的域名就相當于Apache的ServerAlias。
相關(guān)文章
centos配置mutt和msmtp實現(xiàn)郵件發(fā)送
這篇文章主要為大家詳細介紹了centos配置mutt和msmtp實現(xiàn)郵件發(fā)送,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
Linux 3.X/4.x/5.x 忘記寶塔面板密碼的解決方法
在本篇文章里我們給大家整理的是關(guān)于忘記Linux 3.X/4.x/5.x 寶塔面板密碼的解決方案,有需要的朋友們可以學習下。2019-10-10
解決安裝zabbix之后登陸報錯:zabbix Details Cannot connec
檢查PHP配置文件(php.ini)中mysql.default_socket路徑是否與MySQL實際socket文件位置一致,確認MySQL服務(wù)已啟動且權(quán)限正確,必要時手動指定socket路徑或重啟服務(wù)2025-07-07

