Apache-2.2
Apache/DNS - 將域名指向我目錄中的文件夾
我有一個文件夾,其中包含我正在服務的應用程序。在我的 httpd.conf 中,我設置了一個虛擬主機來指向該文件夾。在開發過程中,我將其設置為指向我擁有的域上的子域
test.development.com
。現在我正在嘗試上線,我將虛擬主機設置為如下所示:<VirtualHost *:80> DocumentRoot /var/www/html_site ServerAlias production.com ServerAlias www.production.com </VirtualHost>
通過我的註冊商,我設置了一條 A 記錄以指向我的 IP。DNS 看起來正確傳播。但是,當我訪問 www.production.com 或 production.com 時,它並沒有到達我的應用程序。如果我添加
ServerAlias test.development.com
到 VirtualHost,那麼當我瀏覽到 www.production.com 或 production.com 時,我會被重定向到 test.development.com 並且應用程序可以執行。我不想訪問應用程序,但將 url 設置為生產 url。我怎樣才能做到這一點?編輯- 從下面的評論中添加額外資訊
我跑了
apachectl -S
,這是輸出VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: _default_:445 development.com (/etc/httpd/conf.d/ssl.conf:75) *:80 is a NameVirtualHost default server default (/etc/httpd/conf/httpd.conf:1116) port 80 namevhost default (/etc/httpd/conf/httpd.conf:1116) port 80 namevhost sub.development.com (/etc/httpd/conf/httpd.conf:1132) port 80 namevhost sub2.development.com (/etc/httpd/conf/httpd.conf:1138) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1144) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1165) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1196) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1239) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1245) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1252) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1259) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1267) port 80 namevhost development.com (/etc/httpd/conf/httpd.conf:1274)
在這種情況下要檢查的兩個主要事項是 -
- 驗證正確的虛擬主機正在為請求提供服務,並且
- 跟踪相關的配置位。
在這種情況下,錯誤的 vhost 似乎正在服務與配置相反的請求,但這實際上是由於意外重定向到子域;當子域映射到正確的虛擬主機時,請求也有效。
當這種非預期的重定向出現時,它可能出現在幾個地方——Apache 配置、不太明顯的 Apache 配置(
.htaccess
文件),或者在正在服務的應用程序/內容中,或者在重定向元標記中,或者在生成一個30 倍響應。