gpt4 book ai didi

php - 使用 .htaccess (PHP) 即时创建子域

转载 作者:IT老高 更新时间:2023-10-28 11:47:01 24 4
gpt4 key购买 nike

我希望创建一个系统,在注册时将在我的网站上为用户帐户区域创建一个子域。

例如johndoe.website.example

我认为这与 .htaccess 文件有关,并可能重定向到网站上的另一个位置?我其实不知道。但是任何让我开始的信息将不胜感激。

创建一个注册区域不是问题 - 我已经做过很多次了。我只是不确定从哪里开始子域。

最佳答案

简要介绍

  1. 您需要在您的 DNS 服务器上创建一个通配符域 *.website.example
  2. 然后在您的 vhost 容器中,您还需要指定通配符 *.website.example - 这是在 ServerAlias DOCs 中完成的
  3. 然后在PHP中提取并验证子域并显示相应的数据

长版

1。创建通配符 DNS 条目

在您的 DNS 设置中,您需要创建一个 wildcard domain entry例如 *.example.org。通配符条目如下所示:

*.example.org.   3600  A  127.0.0.1

2。在 vhost 中包含通配符

接下来在 Apache 配置中,您需要设置一个虚拟主机容器,该容器在 ServerAlias DOCs 中指定通配符。指示。一个示例 vhost 容器:

<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>

3。在 PHP 中找出您所在的子域

然后在您的 PHP 脚本中,您可以通过查看 $_SERVER super 全局变量来找出域。下面是一个在 PHP 中抓取子域的例子:

preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}

我在这里使用了正则表达式来允许人们通过 www.subdomain.example.orgsubdomain.example.org 访问您的网站。

如果您从没想过要处理 www. (或其他子域),那么您可以简单地使用这样的子字符串:

$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);

海量虚拟主机

海量虚拟主机与上述方案略有不同,因为您通常会使用它来托管许多不同的网站,而不是像问题所建议的那样尝试使用它来为应用程序提供动力。

我之前在 post on my blog 中记录了我的基于 mod_rewrite 的大规模虚拟主机环境。 ,如果那是你想走的路线,你可以看看。当然,还有 respective Apache manual page .

Apache 还有一种处理海量虚拟主机的内部方法,它的灵 active 比我使用的 mod_rewrite 方法稍差。这在 Apache Dynamically Configured Mass Virtual Hosting manual page 上都有描述。 .

关于php - 使用 .htaccess (PHP) 即时创建子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com