Apache-2.2

虛擬主機的 DocumentRoot 上的萬用字元

  • April 13, 2013

我在 apache2 中將此配置用於萬用字元子域並且效果很好:

<VirtualHost *:80>
 DocumentRoot /var/www/
 ServerName sumdomains.example.com
 ServerAlias *.example.com
 RewriteEngine On
 RewriteRule ^/(.*) /%{HTTP_HOST}/$1
</VirtualHost>

這意味著,對http://user.example.com/foo.html的請求將獲取文件**/var/www/user.example.com/foo.html**。

但我想請求http://user.example.com/foo.html從****/var/www/user/foo.html獲取文件。

我應該為此使用哪個萬用字元?

設置重寫規則抓取 sub.domain 並重定向到 /sub/requestedFile

RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-]+)\.example.com$
RewriteRule ^(.+) /%1/$1 [L,QSA]

或者將 VirtualDocumentRoot 設置為 %-1 代表子域。

<VirtualHost *:80>
 VirtualDocumentRoot /var/www/%-1
 ServerName sumdomains.example.com
 ServerAlias *.example.com
</VirtualHost>

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