Apache 上的動態海量虛擬主機上的規格重定向

Apache 上的動態海量虛擬主機上的規格重定向

我在 Apache 上有一個 Web 應用程序,允許用戶將其網域指向伺服器。

現在我正在使用 Apache 的動態海量虛擬主機,其條目為 VirtualDocumentRoot /www/hosts/%0/docs

因此,對於 www.companydomain.com,它指向 /www/hosts/www.companydomain.com/docs

問題是當使用者造訪companydomain.com時,它將指向/www/hosts/companydomain.com/docs

有沒有簡單的方法可以自動讓 Apache 檢查虛擬主機的目錄是否存在,如果不存在,請尋找有「www」的主機名稱。在它前面?其他子網域都很好(即 ​​abc.domain.com 應該指向與 def.domain.com 不同的目錄),但整個「www」問題對我來說是個謎。

我正在使用動態海量虛擬主機,因此伺服器不必在每次註冊應用程式後重新啟動。如果有不同的方式,只要 apache 不每次都重新啟動就可以了。

我怎樣才能做到這一點?最糟糕的情況是,如果沒有找到一種方法可以重定向到伺服器上的「預設」位置,我總是可以透過PHP 或其他方式進行檢查,但我覺得這有點被駭客攻擊在一起,必須有一個更有效的方法方式。

先致謝!

答案1

我想我會研究-d directoryRewriteCond 的選項來測試該虛擬主機是否存在目錄,如果不存在,請明確重定向到 www.example.com。這可以讓人們在看到意想不到的頁面時不會感到震驚,並且可以防止搜尋引擎多次索引。

答案2

module/mappers/mod_vhost_alias.c 第 458 行

if (strncasecmp(name,"www.",4) == 0) {
    name+=4;
}

相關內容