PHP包括,htaccess和allow_url_fopen

时间:2011-02-01 19:12:33

标签: php .htaccess include-path

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

然后,您可以将数据写入文件并包含它。不过,这仍然是一种非常冒险的行为,因为您信任远程来源。链条只有最薄弱的环节才能安全。使用SSH和定期同步可能是一种可行的替代方案。