场景:在托管服务器上开发,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),如果我移动文件,相对路径可能无效。答案 0 :(得分:2)
你真的不想这样做。这就是默认情况下关闭该选项的原因。处理此问题的更好方法是使用libcurl
抓取文件。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
然后,您可以将数据写入文件并包含它。不过,这仍然是一种非常冒险的行为,因为您信任远程来源。链条只有最薄弱的环节才能安全。使用SSH和定期同步可能是一种可行的替代方案。