如何在本地主机 PHP 中注册后使用用户名创建动态子域


how to create a dynamic Subdomain with user name after registration in localhost php

我创建了像这个user2.example.com 这样的子域。

127.0.0.1       localhost
127.0.0.1       user2.localhost

这是静态的

但是我需要 user2 将 b 动态,例如,如果我注册了 abc(用户名),我的网站应该像这样 abc.example.com

您要搜索的是通配符子域。您需要在您的域名经销商(*.example.com)注册一个,但我知道大多数托管商都不支持它。要在本地主机上进行测试,您需要一个自定义 DNS 服务器。看看这个答案。

然后它取决于网络服务器。

对于阿帕奇:

<VirtualHost 111.22.33.55>
    DocumentRoot /www/subdomain
    ServerName www.domain.tld
    ServerAlias *.domain.tld
</VirtualHost>

对于 Nginx:

server {
  server_name example.com www.example.com;
  root www/pub;
}
server {
  server_name ~^(.*)'.example'.com$ ;
  root www/pub/$1;
}

对于 IIS:

<rule name="CustomRule" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
  <match url="*.aaa.bbbb.com" />
  <action type="Rewrite" url="http://aaa.bbbb.com/{R:0}" />
</rule>

如果你在Apache上运行你的网站,最好从Apache文档中查看URL重写指南。你也可以尝试这样的事情:

RewriteCond %{HTTP_HOST} ^([^.]+)'.domain'.com$
RewriteRule ^/(.*)$           http://www.domain.com/%1/$1 [L,R] 

如果你在Nginx上运行你的网站,你可以试试这个:

server {
  server_name ~^(.*)'.domain'.com$ ;
  rewrite ^ http://www.domain.com/$1 break;
}

首先,我们需要配置 DNS 设置,使所有子域解析为单个地址。然后在 Apache 配置中配置虚拟主机以保存我们的页面并记住通配符。

逐步查看本教程