Apache虚拟主机模式匹配

我试过看其他类似的问题,但不能真正find我要找的东西。

我有一个运行apache2的服务器,并且我希望所有对www.foo.tld的请求都服务于/var/www/foo.tld

例如:

www.example.com -> /var/www/example.com example.net -> /var/www/example.net foobar.co.uk -> /var/www/foobar.co.uk www.foobar.co.uk -> /var/www/foobar.co.uk 

我无法弄清楚如何做到这一点。 我有时可以使用或不使用www子域,但从来没有这两个。

VirtualDocumentRoot的Apache指令将做的伎俩,这是一个很好的解释: http : //httpd.apache.org/docs/2.0/vhosts/mass.html

我通过创build文件/ etc / apache2 / sites-enabled-000-Dynamic修复了这个问题

并将文件000-default重命名为001-默认。

在这个文件是以下

 <VirtualHost *:80> RewriteEngine On # Redirect www to non-www (class B compliance with no-www) RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1$1 [R=301,L] # Remove trailing slashes RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] # Automatically get the correct folder UseCanonicalName Off VirtualDocumentRoot /var/www/%1 </VirtualHost> 

我稍微改了一下:www.foobar.com这个名字现在指向/ var / www / foobar,这使得它更容易。

以及dynamic虚拟主机,这也将www.foobar.comredirect到foobar.com,并remov