我想将子域名重定向到用户目录。
所以我尝试了这个配置,但它似乎重定向到根文件夹。
<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.fr 重定向到 /home/tiste/apps/,然后,网站在 apps/ 上的任何页面都将可以访问 tiste.epnet.fr/index.php
谢谢 !
答案1
Apache 提供了一个非常方便的模块,称为mod_userdir
这比仅仅使用重写要容易得多。(有一个很好的教程这里)具体来说,如何将其与虚拟主机结合起来,这是有记录的这里。
答案2
您需要使用 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>
确保您创建的文件夹具有正确的权限:
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