Apache-2.2

Apache/DNS - 將域名指向我目錄中的文件夾

  • October 29, 2014

我有一個文件夾,其中包含我正在服務的應用程序。在我的 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)

在這種情況下要檢查的兩個主要事項是 -

  1. 驗證正確的虛擬主機正在為請求提供服務,並且
  2. 跟踪相關的配置位。

在這種情況下,錯誤的 vhost 似乎正在服務與配置相反的請求,但這實際上是由於意外重定向到子域;當子域映射到正確的虛擬主機時,請求也有效。

當這種非預期的重定向出現時,它可能出現在幾個地方——Apache 配置、不太明顯的 Apache 配置(.htaccess文件),或者在正在服務的應用程序/內容中,或者在重定向元標記中,或者在生成一個30 倍響應。

引用自:https://serverfault.com/questions/640103