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

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


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

