带有.htaccess和php的通配符子域
我花了一天的大部分时间来想办法解决这个问题,最后需要寻求一些帮助 我有一堆文件夹,我想把它们做成子域。我遵循了下面的教程,在步骤1中在我的DNS中设置了一个通配符重定向,并在步骤2中编辑了我的virualhost。这似乎已经按计划进行了 然而,我不确定步骤3背后的逻辑。下面的代码如何允许我显示子域中文件夹中的内容?我不知道我应该尝试什么样的逻辑并编写代码——我想我显然遗漏了一些显而易见的东西带有.htaccess和php的通配符子域,php,.htaccess,wildcard-subdomain,Php,.htaccess,Wildcard Subdomain,我花了一天的大部分时间来想办法解决这个问题,最后需要寻求一些帮助 我有一堆文件夹,我想把它们做成子域。我遵循了下面的教程,在步骤1中在我的DNS中设置了一个通配符重定向,并在步骤2中编辑了我的virualhost。这似乎已经按计划进行了 然而,我不确定步骤3背后的逻辑。下面的代码如何允许我显示子域中文件夹中的内容?我不知道我应该尝试什么样的逻辑并编写代码——我想我显然遗漏了一些显而易见的东西 $serverhost = explode('.',$_SERVER["HTTP_HOST"]); $s
$serverhost = explode('.',$_SERVER["HTTP_HOST"]);
$sub = $serverhost[0];
if ($sub = "www") {
$sub = "";
}
(教程中的文本)
好的,下面是正在发生的事情。在主php中插入此代码
文件,它所做的是检查
域(即:thishhere.yourdomain.com)是www。如果是,则为空
$sub,否则,$sub将包含您的子域关键字。现在,你
可以检查($sub>“”),并在以下情况下对代码采取适当的操作
存在子域,以基于该值显示页面
(教程链接)
提前感谢。嗯,事实上,这段代码只允许您获取子域的名称 因此,如果要显示与子域对应的文件夹的内容,必须扫描目录,然后检查子域调用的文件夹是否存在,然后包含此文件夹中的脚本 一个简单的方法是:
$scan = scandir('.'); // scan the current directory
if( in_array($sub, $scan) && is_dir($sub) ){
require( $sub.'/yourscript.php');
}
但这意味着您的整个应用程序都是按照$sub值、每个include、每个文件前缀等功能设计的…我个人会告诉您忽略该教程,如果您试图将已知数量的文件夹转换为子域,则应将它们配置为单独的虚拟主机。如果您想将子域转换为脚本中使用的变量(例如,站点上每个用户配置文件有一个子域),则该教程适用于此情况。@AeroX一旦我弄明白,文件夹将不会是已知数字。在该教程中,您甚至不需要单独的文件夹,变量
$sub
将包含用户作为子域提供的任何内容,您可以在脚本中使用该变量来根据它生成任何内容。