具有用户名的虚拟子域

时间:2015-05-21 13:59:43

标签: php apache .htaccess symfony

我使用Symfony2。 我有一个例子site.com。如何使用用户名进行动态虚拟子域名。用户登录网址时显示username.site.com。但username.site.com等于site.com。我能怎么做?

1 个答案:

答案 0 :(得分:0)

很难理解你想要做什么。但如果我理解正确,这可能会对您有所帮助:http://www.devops.zone/webserver/dynamic-subdomains-with-mod_vhost_alias/

编辑:我要包含以上链接中的文字和代码:

对于那些在很多域中使用开发服务器或那些使用某种大规模托管的人,不想重新配置每个域和单个域,这个模块可能很有趣:mod_vhost_alias

首先,我们需要激活默认包含在apache2安装中的模块:

a2enmod vhost_alias

或通过:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/vhost_alias.load vhost_alias.load

然后我们需要创建相应的vhost配置:

NameVirtualHost *.example.net
<VirtualHost *.example.net>
        ServerAdmin admin@example.net
        UseCanonicalName Off
        VirtualDocumentRoot /var/www/vhosts/example.net/subdomains/%1

        DocumentRoot /var/www/vhosts/example.net/subdomains/
        <Directory />
           # directory options
        </Directory>
        <Directory /var/www/vhosts/example.net/subdomains/>
          # directory options
        </Directory>

        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

假设服务器的名称是example.net,apache现在将在/var/www/vhosts/example.net/subdomains /

中查找该域的所有子域

实施例: test.example.net 将映射到: /var/www/vhosts/example.net/subdomains/test

当然,这不仅仅适用于子域,这只是一个例子。