Htaccess文件在這裏沒有什麼幫助,因爲它們位於文檔根目錄下,因此在apache確定哪個虛擬主機指向這個特定的文檔根目錄之後對它進行評估。
假設您的DNS條目配置良好,您應該直接修改Apache主配置。
如果每個子域名指向不同的文檔根目錄,你必須創建爲每一個虛擬主機:
<VirtualHost *>
ServerName example.org
DocumentRoot /path/to/example.org
# ...
</VirtualHost>
<VirtualHost *>
ServerName test1.example.org
DocumentRoot /path/to/test1.example.org
# ...
</VirtualHost>
相反,如果幾個子域指向一個單一的文檔根目錄,你可以使用ServerAlias指令:
<VirtualHost *>
ServerName example.org
ServerAlias test1.example.org
DocumentRoot /path/to/example.org
# ...
</VirtualHost>
如果所有可能的子域指向同一個文檔根目錄,你可以從ServerAlias列表列出每個子域的疼痛緩解一下自己,並使用通配符代替:
<VirtualHost *>
ServerName example.org
ServerAlias *.example.org
DocumentRoot /path/to/example.org
# ...
</VirtualHost>
當然還有更多配置指令需要確保每個虛擬主機正常工作,但這些是您應該瞭解的具有工作設置的主要構建塊。
這就是所謂的通配符,它們不是假的,通配符允許你在你的域中使用任何子域名,但它需要2件事1)DNS設置2)HTTP服務器設置,如果你沒有1和2通配符你不能這樣做。如果你有cPanel可用,例如你可以使用cPanel API來動態創建子域,但這就是它。 – Prix