你如何讓 Apache2 只使用/響應 IP 地址
我有一個位於防火牆後面的 apache2 伺服器。外部地址為 24.89.xxx.xxx,內部地址為 10.10.58.1
伺服器的主機名是“myhost”。我沒有 24.89.xxx.xxx 地址的 DNS 條目,因為它還沒有啟用。將解析到它的域名目前正在用於現有站點。
我希望網路開發團隊能夠通過 24.89.xxx.xxx 地址訪問該站點。但是,每當他們查看該站點時,所有 URL 都會將本地主機名插入其中。
所以,
<a href="index.php?id=9">Link</a>
產生一個 URLhttp://myhost/index.php?id=9
但是,我希望它產生一個 URLhttp://24.89.xxx.xxx/index.php?id=9
Apache 安裝在 Debian Lenny 上。我正在使用“預設”站點。我嘗試了將 NamedVirtualHost 設置為 IP、ServerName 設置為 IP、UseCanonicalName 關閉、VirualHost 等的變體……我所做的一切都不會產生任何變化。是的,我每次都在重新載入配置。
我也試過切斷防火牆,我得到了同樣的結果。我還對 /etc/hosts 文件進行了一些更改。
/etc/主機:
127.0.0.1 localhost 10.10.58.1 myhost 24.89.xxx.xxx www.inusedomain.org
仔細閱讀,我認為這可能是一個 php 問題。通常,您需要在網站的配置中設置某種“基本 URL ”,以便 php 知道如何創建所有連結(“重寫 url”)。在網站的根目錄中查找 config.php或類似的內容。
如果你有糟糕的開發人員,它可能不在一個變數中,而且到處都是。要找到它,或者可能在單個位置找到它,請使用
grep -Ri --include='*.php*' 'localhost' *
,將 localhost 更改為目前被覆蓋的任何內容。不完整的答案:
我不完全確定,但我想我記得將虛擬主機綁定到特定 IP,或更改監聽指令需要完全重啟,而不僅僅是優雅重啟或配置重新載入。