Php 具有用户名的虚拟子域

Php 具有用户名的虚拟子域,php,apache,.htaccess,symfony,Php,Apache,.htaccess,Symfony,我使用Symfony2。 我有一个eample网站。如何使用用户名执行动态虚拟子域。当用户登录时,url显示username.site.com。但是username.site.com等于site.com。我该怎么办 很难理解你到底想做什么。但如果我理解正确,这可能会帮助您: 编辑:我正在包含上面链接中的文本和代码: 对于那些在相当多的域中使用开发服务器的人,或者那些使用某种大规模托管的人,不想重新配置每个域和单个域,这个模块可能很有趣:mod_vhost_alias 首先,我们需要激活默认包含在

我使用Symfony2。
我有一个eample网站。如何使用用户名执行动态虚拟子域。当用户登录时,url显示username.site.com。但是username.site.com等于site.com。我该怎么办

很难理解你到底想做什么。但如果我理解正确,这可能会帮助您:

编辑:我正在包含上面链接中的文本和代码:

对于那些在相当多的域中使用开发服务器的人,或者那些使用某种大规模托管的人,不想重新配置每个域和单个域,这个模块可能很有趣: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


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

至少您必须在服务器ip地址中添加一个通配符DNS记录:*和apache的virtualhost配置中的通配符别名:ServerAlias*.site.com如果不创建自己的DNS服务器,您基本上无法做到这一点。例如,我使用powerdns和mysql,我之前创建了一个系统,在这个系统中,我可以根据另一个数据库动态添加记录。即通过cron检查users表,并为每个用户创建子域。然后,您需要另一个cron来将apache与新主机连接起来。最后,您需要在成功登录到正确的子域时执行重定向。这将是不容易的,老实说,如果你问这个问题,你可能会努力实现这一点。我的网站是。Subdomen只是一张图片,这个问题与Symfony2有什么联系?一旦你有了创建子域的有效方法,从Symfony2使用它就不难了。我建议您将此问题分成两部分:首先创建子域删除symfony2标记,然后添加一个与symfony2相关的问题。请在您的答案中包含相关文本和代码,如果链接断开,此答案可能无效。事实上,我想把它作为一个评论,而不是一个实际的答案,因为我不明白他真正想做什么,但我没有足够的代表来做这件事。我将包括相关的代码和文本,但我认为它必须加以调节。