如何在PHP中创builddynamic网页(通过htaccess保护),显示当前通过虚拟主机设置的所有域和子域的列表?
没有直接的方法来实现这一点。 你将不得不分析localhost / server-info的输出或者在PHP中的Apache Vhost-confs,或者提取所有的ServerName和ServerAlias行。
你可以简化这个,如果你正常化你的虚拟机confs – 即每个虚拟主机有一个文件/sites-enabled/sub.domain.com.conf和每个ServerAlias线只有一个别名,不使用通配符。 否则,它可能是一个非常大的项目…
从apache获得这个信息的规范方法是使用httpd -S (在debian / ubuntu等操作系统上,其他的可能是apache2 -S 。根据环境的不同,在这之前可能会有一堆环境variables在debian / ubuntu上,你会运行. /etc/apache2/envvars ; /usr/sbin/apache2 -S
作为一个方面说明,因为你提到.htaccess,当你有权限改变实际的apacheconfiguration时,不要使用.htaccess。 .htaccess意味着无特权的用户无法更改apacheconfiguration并在启用时出现性能和安全问题。