设置动态虚拟主机(Ubuntu上的Apache2)

时间:2012-01-29 06:49:25

标签: apache virtualhost apache-config virtual-hosts

我想设置一个虚拟主机,它可以根据用于访问它的主机名动态处理所有请求。如果可以在DocumentRoot中使用%{HTTP_HOST},这可能正是我想要的:

<VirtualHost *:80>
    ServerAdmin me@example.com

    DocumentRoot /var/www/live/%{HTTP_HOST}/public
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/live/%{HTTP_HOST}/public>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
    LogLevel warn
    ErrorLog /var/www/live/%{HTTP_HOST}/logs/error.log
    CustomLog /var/www/live/%{HTTP_HOST}/logs/access.log combined
</VirtualHost>

...遗憾的是,DocumentRoot(Warning: DocumentRoot [/var/www/live/%{HTTP_HOST}/public] does not exist)中不允许使用%{HTTP_HOST}。我怎么能实现我的目标呢?

更新:我想把一个全能的vhost指向一个目录,然后让.htaccess使用mod_rewrite来动态选择路径但是(说实话)我已经筋疲力尽了。我会在早上再试一次,但与此同时,如果有人有好主意,我很乐意听到他们!谢谢!

2 个答案:

答案 0 :(得分:3)

Apache文档中解释了实现动态虚拟主机的官方方法:

http://httpd.apache.org/docs/2.0/vhosts/mass.html

答案 1 :(得分:3)

也许你可以尝试这个解决方案:"Apache: Dynamic Virtual Hosts"