带有.htaccess和php的通配符子域

时间:2014-07-03 16:08:08

标签: php .htaccess wildcard-subdomain

花了一天的时间来试图解决这个问题,最后需要寻求帮助。

我有一堆文件夹,我想进入子域名。我已按照下面的教程在第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

提前致谢。

1 个答案:

答案 0 :(得分:2)

事实上,这段代码只允许你获得所谓的子域名。

因此,如果要显示与子域对应的文件夹的内容,则必须扫描目录,然后检查子域调用的文件夹是否存在,然后包含此文件夹中的脚本。

一种简单的方法是:

$scan = scandir('.'); // scan the current directory

if( in_array($sub, $scan) && is_dir($sub) ){

    require( $sub.'/yourscript.php');
}

但这意味着您的整个应用程序是根据$ sub值设计的,每个包含,每个文件前缀等...