花了一天的时间来试图解决这个问题,最后需要寻求帮助。
我有一堆文件夹,我想进入子域名。我已按照下面的教程在第1步中在DNS中设置了通配符重定向,并在第2步中编辑了我的virualhost。这似乎已经计划好了。
但是我不确定步骤3背后的逻辑。下面的代码如何允许我显示子域中文件夹的内容?我无法弄清楚我应该尝试和编码的逻辑 - 我认为我显然遗漏了一些明显的东西。
$serverhost = explode('.',$_SERVER["HTTP_HOST"]);
$sub = $serverhost[0];
if ($sub = "www") {
$sub = "";
}
(教程中的文字)
好的,这是正在发生的事情。您在主php中插入此代码 文件及其作用是检查是否存在子域部分 域名(即:thishere.yourdomain.com)是www。如果是这样,它只是空值 $ sub,否则,$ sub将包含您的子域关键字。轮到你了 可以检查是否($ sub>“”)并对您的代码采取适当的操作 存在子域,以显示基于该值的页面。
(教程链接) http://www.wiredstudios.com/php-programming/setting-up-wildcard-dns-for-subdomains-on-cpanel.html
提前致谢。
答案 0 :(得分:2)
因此,如果要显示与子域对应的文件夹的内容,则必须扫描目录,然后检查子域调用的文件夹是否存在,然后包含此文件夹中的脚本。
一种简单的方法是:
$scan = scandir('.'); // scan the current directory
if( in_array($sub, $scan) && is_dir($sub) ){
require( $sub.'/yourscript.php');
}
但这意味着您的整个应用程序是根据$ sub值设计的,每个包含,每个文件前缀等...