我正在尝试使用.htaccess和PHP的组合在我的GoDaddy Hosting帐户上即时创建子域名。我遇到了尝试使用通配符星号修改区域的问题。我完全不熟悉它是如何工作的,只是通过广泛探索域管理器找到了关于域的区域内容。我不确定我知道自己在做什么。我对.htaccess稍微熟悉一点,虽然写RegEx对我来说仍然是一个很大的挑战。
我研究了另一个教程,该教程将使用.htaccess将子域重新路由到我的域根目录中的文件夹(例如sub.domain.com到domain.com/sub)。这是我的代码:
#Grab the subdomain from the domain
RewriteCond %{HTTP_HOST} ^([^.]+).MY-DOMAIN.com$
#Make sure the subdomain is not www or example
RewriteCond %{1} !^(www)$
#Check if the directory actually exists before we go there
RewriteCond /home/content/X/Y/Z/XYZ-MY-GODADDY-ACCT/html/%1 -d
#This stops it from looping
RewriteCond %{REQUEST_FILENAME} !^/home/content/X/Y/Z/XYZ-MY-GODADDY-ACCT/html/
#Finally, this is the actual rewrite
RewriteRule (.*) /home/content/X/Y/Z/XYZ-MY-GODADDY-ACCT/html/%1 [L]
截至目前,我已完成以下工作:
有什么建议吗?
答案 0 :(得分:1)
DNS只是配置的一部分。您需要在Apache的虚拟主机配置中为* .mydomain.com安装ServerAlias,否则Apache将无法知道在哪里为* .mydomain.com路由请求 - 这意味着.htaccess永远不会有机会工作。
如果GoDaddy提供了一种手动编辑虚拟主机指令的方法,或者至少能够通过GUI添加服务器别名,那么这很容易。如果找不到,请联系GoDaddy获取信息。
答案 1 :(得分:1)
我被建议将here的回答转到这个问题:
虽然不能为动态添加的每个子域创建新的vhost条目,但您应该能够使用通配符DNS记录并向主机帐户添加专用IP来设置它。您可以使用以下方法为您的主机帐户添加专用IP:
注意:专用IP可能需要24小时才能在您的托管帐户中激活。
您可以在我们的DNS管理器中设置* .yourdomain.com以使用您的共享主机帐户的专用IP。
答案 2 :(得分:0)
我刚刚使用GoDaddy技术支持电话,并获得了一个不需要使用mod_rewrite或升级到专用服务器的出色解决方案。
从您的帐户登录https://gateway.godaddy.com,从下拉列表中选择托管,然后在打开的页面上选择设置。在打开的模式窗口中,单击“更改域”按钮并输入虚拟域(请注意,虚拟域不需要在DNS中注册或输入。这会将您的默认域更改为将驻留在虚拟域中的虚拟域。 public_html文件夹。
完成后,转到cPanel并从顶部的绿色菜单栏中选择Addon Domains。输入新域并键入已注册域的名称,然后指定文档根(DocRoot)。该路径可以是完全位于public_html文件夹之外的目录位置,因此您可以创建Laravel友好路径,例如webroot / mydomain.com / public,并在webroot / mydomain.com中安装Laravel。
同样,您可以为子域指定类似的路径。
希望这可以帮助每个人看这个。