【问题标题】:PHP includes, htaccess, and allow_url_fopenPHP 包括、htaccess 和 allow_url_fopen
【发布时间】:2011-06-19 12:14:19
【问题描述】:

场景:在托管服务器上开发,htaccess = Basic Auth,allow_url_fopen = on

问题:当我包含文件及其 url 位置时,我的 htaccess 会阻止包含并返回 401 错误。

已知解决方案:相对路径 (../)、$_SERVER['DOCUMENT_ROOT']。

问题:还有其他方法吗?如果可能,我想在这种情况下保留 url。另外,我正在为我的页脚使用包含文件,我应该使用 tpl 代替吗(我对 tpl 一无所知)?

编辑:我目前正在弄乱我的文件夹结构。我有 example.com 和 secure.example.com(安装了 ssl)。所以在我的安全文件夹中,我想包含来自根目录的文件。我认为如果我使用 URL 可能会更容易,因为“document_root”调用只会将我带到安全文件夹(而不是 root),如果我移动文件,则相对路径可能不起作用。

【问题讨论】:

  • 只有当您通过 http:// 请求本地资源时才会发生这种情况。你能举个例子吗?
  • 为什么要将其保留为 URL 包含?
  • 好问题。我将在上面进行编辑以提供更多详细信息。

标签: php .htaccess include-path


【解决方案1】:

你真的不想这样做。这就是该选项默认关闭的原因。处理此问题的更好方法是使用 libcurl 获取文件。

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);

然后您可以将数据写入文件并包含它。不过,这仍然是一种非常危险的行为,因为您信任远程源。一条链的安全取决于其最薄弱的环节。使用 SSH 并定期同步可能是一种可行的选择。

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 2017-01-23
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多