Apache-2.2
使用 Apache 的 IPv6 的 ServerName
我基本上是在嘗試將:443 上的每個請求重定向到:443。我發現這種方法可以很好地工作,一旦訪問者丟棄 SSL 警報(當然,我的證書對我的 IP 無效),他就會被正確重定向:
<VirtualHost *:443> SSLEngine off ServerAdmin hi@mom.eu ServerName 11.11.11.11 Redirect Permanent / https://domain.eu/ </VirtualHost>
但是我今天在我的伺服器上啟用了 IPv6,所以我也想重定向它,但問題從這裡開始。
<VirtualHost *:443> SSLEngine off ServerAdmin hi@mom.eu ServerName [ff:ff:8:ff::1] //(with or without '[]') Redirect Permanent / https://domain.eu/ </VirtualHost>
它根本行不通。我不確定這是否是因為 ServerName 參數中缺少對 IPv6 的支持,但我有點卡住了。
你有什麼主意嗎 ?謝謝 !
據我所知,ServerName 指令不允許使用 IPv6 地址。
它不接受 IPv6 地址的方括號和冒號字元。
該格式僅對 Listen、NameVirtualHost 和 VirtualHost 指令有效。
根據您的配置(即:如果您在同一個 Apache 安裝上服務多個域),您可以嘗試以下操作。
像往常一樣創建一個虛擬主機,而不是用 IPv6 地址定義一個 ServerName,而是用一個正確的 dns 名稱(不一定真的存在)來定義它。
現在的訣竅是將此虛擬主機放在該 IP:Port 的所有其他虛擬主機之上。
這樣,當使用者對未由 Apache 處理的域(或您的情況下的 IP)發出請求時,它將嘗試使用為該 IP:Port 找到的第一個 VirtualHost 來服務該請求。