使用虚拟主机将子域名重定向到目录

使用虚拟主机将子域名重定向到目录

我想将子域名重定向到用户目录。

所以我尝试了这个配置,但它似乎重定向到根文件夹。

<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

相关内容