我正在 localhost Xampp 安装
中进行项目实施我的项目的一部分是,
当用户在我的页面上注册时,他将被要求提供他想要的子域名,从那时起他的URL将是:
chosensubdomain.mysite.com
一切都很完美,除了子域我必须手动添加windows主机文件中的条目,如下所示
127.0.0.1 chosensubdomain.mysite.com abc.mysite.com xyz.mysite.com
我想要的是当表单提交主机文件时应该添加一个条目
我不确定是否可以使用PHP以编程方式在Windows Host文件中输入。
请帮助我解决这个问题...
答案 0 :(得分:1)
虽然这很有可能,但更好的,省时的方法是使用您选择的编程语言在服务器上动态创建子文件夹,然后使用.htaccess
文件将http://foo.com/bar
重写为http://bar.foo.com
。如果您在实时服务器上或在本地计算机上使用This({为了便于高级DNS控制),Zpanel应该可以帮助您,否则您可以手动添加一个全能(*)子您的主机文件中的域。
*.foo.com IN A 127.0.0.1
如果你仍然想要这样做,你必须使用PHP的I / O函数动态地将文本附加到你的主机文件。
$sub_domain = " foo.bar.com";
$append = file_put_contents('C:\Windows\System32\drivers\etc\hosts', $sub_domain.PHP_EOL , FILE_APPEND | LOCK_EX);
我实际上认为this可以更好地回答您的问题。
答案 1 :(得分:1)
保持向主机写入新条目不是一个好方法。
以下是我的想法:在您的本地环境中使用Dnsmasq
。
例如:设置Dnsmasq on OSX
dnsmasq规则应设置为解析任何以mysite.com
结尾至127.0.0.1
通过这种方式,您在本地环境中匹配的所有子域都将指向localhost,从而解决您的问题。
在生产环境中,您可以为您的域设置通配符A或AAAA(可能)记录。