小编典典

如何让 PHP 为每个用户自动创建子域?

all

如何创建子域http://user.mywebsite.example?我必须以.htaccess某种方式访问​​吗?实际上是否可以通过纯 PHP
代码创建它,或者我需要使用一些外部脚本服务器端语言?

对于那些回答的人:那么,我应该问我的主机是否提供某种 DNS 访问?


阅读 255

收藏
2022-08-29

共1个答案

小编典典

您正在寻找创建自定义 A 记录

我很确定您可以在指定 A 记录时使用通配符,这样您就可以执行以下操作:

*.mywebsite.example       IN  A       127.0.0.1

127.0.0.1 将是您的网络服务器的 IP 地址。实际添加记录的方法取决于您的主机。


如果可以的话,这样做http://mywebsite.example/user会更容易设置。

然后你可以添加一个.htaccess看起来像这样的文件:

Options +FollowSymLinks

RewriteEngine On
RewriteRule ^([aA-zZ])$  dostuff.php?username=$1

在上面,用户名仅限于字符 az


获取子域的重写规则如下所示:

RewriteCond %{HTTP_HOST} ^(^.*)\.mywebsite.example
RewriteRule (.*)  dostuff.php?username=%1

但是,您实际上并不需要任何重写规则。HTTP_HOST 标头在 PHP 中也可用,因此您已经可以获取它,例如

$username = strtok($_SERVER['HTTP_HOST'], ".");
2022-08-29