Apache 如何使用PHP创建子域?是否可以在共享主机上运行?
我对直接从php动态创建子域感兴趣。例如,当用户创建新页面时,我希望该页面为newpage.mydomain.com。在不更改php或apache配置文件的情况下(假设我使用的是共享主机帐户),这是可能的吗 稍后编辑:我说的是我的域名,我可以完全访问域名管理区域Apache 如何使用PHP创建子域?是否可以在共享主机上运行?,apache,.htaccess,php,subdomain,Apache,.htaccess,Php,Subdomain,我对直接从php动态创建子域感兴趣。例如,当用户创建新页面时,我希望该页面为newpage.mydomain.com。在不更改php或apache配置文件的情况下(假设我使用的是共享主机帐户),这是可能的吗 稍后编辑:我说的是我的域名,我可以完全访问域名管理区域 在.htaccess文件中设置一个错误文档,将每个404重定向到一个名为maybe redirection.php的文件。php文件将处理“动态”重定向 在区域文件中添加通配符DNS记录,以便[whateverhere].yourdom
这有帮助吗
这有帮助吗?是的,你可以这样做。
您需要确保首先在域注册DN面板中针对您的域设置通配符*a记录
设置完通配符后,您只需查看>
$_SERVER["SERVER_NAME"]
是的,你能做到。
您需要确保首先在域注册DN面板中针对您的域设置通配符*a记录
设置完通配符后,您只需查看>
$_SERVER["SERVER_NAME"]
仅仅通过php是不可能的。我认为共享主机不允许这样。 无论如何,如果您必须拥有一个域(或拥有编辑DNS记录的权限),则可以添加通配符记录,以允许任何子域指向一台计算机(由其IP地址标识) 编辑(来自Powerlord评论) apache必须将每个子域重定向到同一vhost 通常使用vhost配置中的
ServerAlias*.example.com
/编辑
然后在php中,您可以通过解析(拆分)$\u服务器['HOST\u NAME']
例如:
仅仅通过php是不可能的。我认为共享主机不允许这样。 无论如何,如果您必须拥有一个域(或拥有编辑DNS记录的权限),则可以添加通配符记录,以允许任何子域指向一台计算机(由其IP地址标识) 编辑(来自Powerlord评论) apache必须将每个子域重定向到同一vhost 通常使用vhost配置中的
ServerAlias*.example.com
/编辑
然后在php中,您可以通过解析(拆分)$\u服务器['HOST\u NAME']
例如:
这是错误的。我完全按照OP在数千页上的要求来做。@Laykes:这实际上取决于你的主机是如何配置的。默认情况下,Apache(OP询问的对象)不允许您这样做;相反,它会返回到
\u默认值\u
虚拟主机,如果失败,则返回主服务器配置。这是怎么回事?我解释说,你需要这样做,并表示>我不认为有一个共享托管服务允许这样做。它应该得-1分吗?也许更好的评论应该是链接到提供该服务的主机服务。这是错误的。我完全按照OP在数千页上的要求来做。@Laykes:这实际上取决于你的主机是如何配置的。默认情况下,Apache(OP询问的对象)不允许您这样做;相反,它会返回到\u默认值\u
虚拟主机,如果失败,则返回主服务器配置。这是怎么回事?我解释说,你需要这样做,并表示>我不认为有一个共享托管服务允许这样做。它应该得-1分吗?也许更好的评论是链接到提供该功能的托管服务。如果您的提供商允许您为您的Web服务器设置“全面覆盖”,则这可能适用于共享托管。请与主机提供商联系。是否确实需要重定向?我可以直接分析请求url,并根据我的假设构建页面。然后你可以采用这种方法,但你仍然需要一个通配符DNS条目,apache需要知道如何响应假域名。如果你的提供商允许你为你的Web服务器设置“一网打尽”,这可能适用于共享主机。请与主机提供商联系。是否确实需要重定向?我可以直接分析请求url,并根据我的假设构建相应的页面。那么你可以采用这种方法,但你仍然需要一个通配符DNS条目,apache需要知道如何响应伪子域名称。
$host = explode ('.', $_SERVER['HOST_NAME']);
array_pop ($host);
array_pop ($host);
$subdomain = join ('.', $host);