【问题标题】:Wildcard Subdomain with .htaccess and php带有 .htaccess 和 php 的通配符子域
【发布时间】:2014-07-03 16:08:07
【问题描述】:

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

我有一堆文件夹,我想把它们做成子域。我已按照下面的教程进行操作,并在步骤 1 中在我的 DNS 中设置了通配符重定向,并在步骤 2 中编辑了我的虚拟主机。这似乎已经计划好了。

但是我不确定第 3 步背后的逻辑。下面的代码如何允许我显示子域中文件夹中的内容?我无法弄清楚我应该尝试什么逻辑和编码——我想我显然在这里遗漏了一些明显的东西。

$serverhost = explode('.',$_SERVER["HTTP_HOST"]);
$sub = $serverhost[0];
if ($sub = "www") {
$sub = "";
}

(教程中的文字)

好的,这就是正在发生的事情。您将此代码插入主 php 文件,它的作用是检查文件的子域部分是否 域(即:thishere.yourdomain.com)是 www。如果是这样,它只是空 $sub,否则,$sub 将包含您的子域关键字。轮到你了 可以检查 if ($sub > "") 并对您的代码采取适当的措施 if 存在子域,以显示基于该值的页面。

(教程链接) http://www.wiredstudios.com/php-programming/setting-up-wildcard-dns-for-subdomains-on-cpanel.html

提前致谢。

【问题讨论】:

  • 就我个人而言,我会告诉您忽略该教程,如果您尝试将已知数量的文件夹转换为子域,则应将它们配置为单独的虚拟主机。该教程适用于如果您想将子域转换为在脚本中使用的变量(例如您网站上的每个用户配置文件一个子域)。
  • @AeroX 一旦我弄清楚这些文件夹将不会是一个已知的数字。它们仅以测试而闻名。
  • 在该教程中,您甚至不需要单独的文件夹,变量 $sub 将包含用户作为子域提供的任何内容,您可以在脚本中使用它来生成您喜欢的任何内容基于它。

标签: php .htaccess wildcard-subdomain


【解决方案1】:

嗯嗯,其实这段代码只允许你获取调用的子域。

所以如果你想显示你的子域对应的文件夹的内容,你必须扫描你的目录,然后检查子域调用的文件夹是否存在,然后从这个文件夹中包含脚本。

一个简单的方法是:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 2011-06-05
    • 2011-08-16
    • 1970-01-01
    • 2016-10-19
    • 2014-09-06
    • 2012-01-23
    相关资源
    最近更新 更多