[英]How do you create subdomains using PHP? Is is possible on shared hosting?
我有兴趣直接从php快速创建子域。 例如,当用户创建新页面时,我希望该页面为newpage.mydomain.com。 是否可以在不更改php或apache配置文件的情况下(假设我使用的是共享托管帐户)。
以后的编辑:我正在谈论我的域,并且我具有对域管理区域的完全访问权限。
在您的.htaccess文件中设置一个错误文档,该文档将每个404重定向到一个可能名为redirection.php的文件。 该.php文件将处理“即时”重定向。
在区域文件中添加通配符DNS记录,以便[whateverhere] .yourdomain.com指向您的网络服务器的IP
使用以下命令在您的apache配置中添加通配符serveralias:ServerAlias * .yourdomain.com
在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.