Apache-2.2

為域和文件根目錄設置帶有萬用字元的虛擬主機別名 - 文件根目錄未正確解析

  • March 2, 2013

我對在這個問題中使用的正確術語只有一個模糊的概念,所以請隨時通過澄清它來幫助我。

我有一個虛擬主機設置。這個想法是我想要一個萬用字元將所有請求路由root.TERM.lh/TERM/文件根目錄。

下面的設置可以很好地辨識域並相應地路由它們,但它不會將文件根目錄中的 %1 轉換為 TERM。例如,Apache 錯誤日誌告訴我,對於對 root.mywebsite.lh 的請求,它正在嘗試路由到/Users/hollsk/Dev/websites/%1,因此它將其解釋為文字字元串。

我的語法不正確,還是我缺少某些模組?

NameVirtualHost *
<VirtualHost *>
   ServerName root.%1.lh
   ServerAlias root.%1.lh
   DocumentRoot /Users/hollsk/Dev/websites/%1/
</VirtualHost>

我的語法有點不正確。

NameVirtualHost *
<VirtualHost *>
   ServerName root.%2.lh
   ServerAlias root.%2.lh
   DocumentRoot /Users/hollsk/Dev/websites/%2/
</VirtualHost>

請注意,%2而不是%1- 仍然不確定為什麼%1按字面意思解釋(而不是 string root,這是我所期望的),但在任何情況下更改為正確的句柄都可以解決問題。

這種配置風格需要使用附加模組,而不是核心虛擬主機指令。

在此處查看 VirtualDocumentRoot:http ://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

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