繁体   English   中英

如何使用PHP创建子域? 可以在共享主机上吗?

[英]How do you create subdomains using PHP? Is is possible on shared hosting?

我有兴趣直接从php快速创建子域。 例如,当用户创建新页面时,我希望该页面为newpage.mydomain.com。 是否可以在不更改php或apache配置文件的情况下(假设我使用的是共享托管帐户)。

以后的编辑:我正在谈论我的域,并且我具有对域管理区域的完全访问权限。

  1. 在您的.htaccess文件中设置一个错误文档,该文档将每个404重定向到一个可能名为redirection.php的文件。 该.php文件将处理“即时”重定向。

  2. 在区域文件中添加通配符DNS记录,以便[whateverhere] .yourdomain.com指向您的网络服务器的IP

  3. 使用以下命令在您的apache配置中添加通配符serveralias:ServerAlias * .yourdomain.com

  4. 在redirection.php文件中编写以下代码。

<?php

$url = $_SERVER["REQUEST_URL"];
$newurl=str_replace(".yourdomain.com","",$url);
$newcomplete="http://yourdomain.com/".$newurl;
Header("Location: ".$newcomplete);

?>

这有帮助吗?

是的,您可以这样做。 您需要确保首先设置一个通配符*在域注册DN面板中针对您的域的记录。

设置通配符后,您只需查看>

 $_SERVER["SERVER_NAME"]

仅靠PHP是不可能的。 而且我不认为共享托管允许这样做。 无论如何,因为您必须拥有一个域(或具有编辑DNS记录的权限),然后可以添加通配符记录以允许任何子域指向单个计算机(由其IP地址标识)

编辑(来自Powerlord的评论)

apache通常必须在虚拟主机配置中使用ServerAlias *.example.com将每个子域重定向到同一虚拟主机。

/编辑

然后在php中,您可以通过解析(拆分) $_SERVER['HOST_NAME']来检查该页面是从子域请求的

例如:

$host = explode ('.', $_SERVER['HOST_NAME']);
array_pop ($host);
array_pop ($host);
$subdomain = join ('.', $host);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM