【问题标题】:Http request failed when including file through url from subdomain通过子域中的 url 包含文件时,Http 请求失败
【发布时间】:2015-10-16 15:39:18
【问题描述】:

我正在尝试制作可在我的本地服务器和我的实际网站服务器上运行的可靠代码,因此我不必更改文件的路径等。我不能使用相对路径,因为我使用的是子域,所以浏览器看不到该路径上方的文件夹,所以我想做的是在我的本地服务器上使用根文件夹来指导我的代码文件所在的位置和网络服务器上我检索服务器名。我现在得到的错误是

Warning: include(http://cms.domain.com/serverdetails.php): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/html/domain/administration/cms/DBconnection_patches.php on line 11

我有一个主域和一个带有 cms 文件的子域 cms.domain 的结构是这样的

domain
    -index.php
    -js
         -files.js
    -administration (subdomain folder)
         -index.php
         -otherfiles.php 

这是一个通过Vhost制作的普通子域,在linux ubuntu 14.04 apache2上。

  if($_SERVER['SERVER_NAME']=='domain.com'){
            $local = false; 
        }elseif($_SERVER['SERVER_NAME']=='localhost'){
            $local = true;
        }
        if($local){
            include $_SERVER['DOCUMENT_ROOT'] . '/domain/administration/serverdetails.php';
        }else{
            include 'http://cms.'.$_SERVER['SERVER_NAME'] . '/serverdetails.php';
        }

【问题讨论】:

    标签: php html directory apache2


    【解决方案1】:

    老兄,你不能使用绝对 URLS 包含 .php 文件!!!

    由于在生成 URL 时服务器(Apache/nginx/whatever)应该不输出文件的内容,(如果配置正确)。相反,它应该执行文件并返回执行代码的输出。

    您需要使用内部file path 来包含该文件。 为此,dirname(__FILE__) 将有助于计算 relative path

    【讨论】:

    • 你介意举个例子吗,我还没有完全理解。从域调用子域时,我认为我不能使用内部文件路径
    • 如果您的意思是说该文件不存在于当前目录中,那么您实际上可以通过使用双点在目录中向上导航来构建相对路径,如果您说该文件您在子域上无法访问,那么为什么不直接将其复制到子域可访问目录中。
    • 因为我不想复制文件,所以稍后我将对这些文件进行一些更改,并且我不会记得总是将其复制到 2 个目录,这会弄得一团糟。相对路径不起作用,因为在此之前浏览器无法访问 cms.domain.com 文件夹,只能在文件夹中进一步访问。
    • 老兄,你对服务器端脚本工作原理的基本理解是有缺陷的。包含的文件不是“浏览器包含的”,它在运行时被 php 解释器包含在内,所有这些都是发生在浏览器甚至得到第一个响应之前。 ...
    • include(../serverdetails.php):无法打开流:尝试后第 11 行的 /var/www/html/leaguenotes/administration/cms/DBconnection_patches.php 中没有此类文件或目录相对路径,这也是类似问题“浏览器处理子域”的引用。这与您的服务器计算机内部的路径无关,而是与您网站公共根目录的路径有关,因此,sub.domain.com 与您的浏览器完全不同 domain.com。在内部可以提供相同的内容,但是您需要在 .htaccess 文件中添加规则。'
    猜你喜欢
    • 1970-01-01
    • 2011-04-30
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2016-09-20
    相关资源
    最近更新 更多