使用虚拟主机将子域redirect到一个目录

我想redirect一个子域到用户目录。

所以我试过这个configuration,但似乎redirect到根文件夹。

<VirtualHost *:80> ServerName epnet.fr ServerAlias *.epnet.fr RewriteEngine on RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.epnet\.fr RewriteCond /home/%1/apps/ -d RewriteRule ^(.*) /%1/$1 [L] <Directory /home> Options Includes FollowSymlinks AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> 

例如,我有一个用户'tiste',我想将tiste.epnet.frredirect到/ home / tiste / apps /,然后,任何位于app /上的网站页面都可以访问tiste.epnet .FR / index.php文件

谢谢 !

Apache为这个名为mod_userdir模块提供了一个非常方便的模块,这比使用重写更容易。 (这里有一个很好的教程。)具体来说,将其与虚拟主机相结合,这是logging在这里 。

您需要使用DocumentRoot

 <VirtualHost *:80> ServerName epnet.fr ServerAlias *.epnet.fr RewriteEngine on RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.epnet\.fr RewriteCond /home/%1/apps/ -d RewriteRule ^(.*) /%1/$1 [L] DocumentRoot /var/www/whatfolderyouwant </VirtualHost> 

确保您正在创build的文件夹具有正确的权限:

  sudo chmod -R 755 /var/www/whatfolderyouwant 

然后最后确保你使用命令激活主机:

  sudo a2ensite epnet.fr 

学习在apache2上设置虚拟主机时,本教程对我非常有帮助: https : //www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12- 04-LTS