我可以使用GoDaddy Hosting动态创建子域名(PHP,.htaccess)吗?

时间:2011-05-08 17:45:35

标签: php .htaccess subdomain wildcard

我正在尝试使用.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]

截至目前,我已完成以下工作:

  1. 登录GoDaddy Domain Manager。
  2. 去工具> DNS管理员。
  3. 为我的域打开了区域文件编辑器。
  4. 添加了一个带有主机名*的A(主机)记录和点到IP地址我从@条目的IP地址复制了值,因为它应该与我的域名相同...?
  5. 现在,在等到名称服务器或其他任何更新和传播的内容之后,当我尝试访问子域时出现403错误。
  6. 有什么建议吗?

3 个答案:

答案 0 :(得分:1)

DNS只是配置的一部分。您需要在Apache的虚拟主机配置中为* .mydomain.com安装ServerAlias,否则Apache将无法知道在哪里为* .mydomain.com路由请求 - 这意味着.htaccess永远不会有机会工作。

如果GoDaddy提供了一种手动编辑虚拟主机指令的方法,或者至少能够通过GUI添加服务器别名,那么这很容易。如果找不到,请联系GoDaddy获取信息。

答案 1 :(得分:1)

我被建议将here的回答转到这个问题:

虽然不能为动态添加的每个子域创建新的vhost条目,但您应该能够使用通配符DNS记录并向主机帐户添加专用IP来设置它。您可以使用以下方法为您的主机帐户添加专用IP:

  1. 点击网页寄存。
  2. 单击“选项”,然后单击“自定义”选项卡。
  3. 从Server IP菜单​​中,选择Dedicated。
  4. 如果您已购买专用IP地址信用,请单击“应用专用IP信用”。或者如果您需要专用的IP地址信用,请单击“结帐”,然后完成购买。
  5. 注意:专用IP可能需要24小时才能在您的托管帐户中激活。

    您可以在我们的DNS管理器中设置* .yourdomain.com以使用您的共享主机帐户的专用IP。

    1. 转到您要更新的域名的区域文件编辑器。
    2. 单击“添加新记录”。将显示“添加DNS记录”窗口。
    3. 从记录类型列表中,选择A(主机)。
    4. 填写以下字段:主机名 - 输入*指向IP地址 - 输入您的主机帐户的专用IP地址。 TTL - 选择服务器缓存信息的时间。
    5. 单击“确定”。
    6. 单击“保存区域文件”,然后单击“确定”。新的A记录显示在A(主机)部分。

答案 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。

同样,您可以为子域指定类似的路径。

希望这可以帮助每个人看这个。