使用HTTPS加载XML资产失败

时间:2017-03-31 作者:BillyHoyle

我的网站的wp管理员只能通过https访问;因此,任何使用get_template_directory_uri(); 在管理区域中,生成urlhttps://mysite.co.uk/...

我能够使用get_template_directory_uri(); 但是当我尝试使用simplexml_file_load(); 要访问站点管理区域中的本地xml文档,文件无法加载。

我可以通过对主题目录的非https版本进行硬编码来解决这个问题,但由于明显的原因,这并不实用。

Summary:

simplexml_load_file(get_template_directory_uri().\'/myxml.xml\'); - 不起作用simplexml_load_file(\'https://mysite.co.uk/my-theme/myxml.xml\'); - 不起作用simplexml_load_file(\'http://mysite.co.uk/my-theme/myxml.xml\'); - 确实有效

2 个回复
最合适的回答,由SO网友:BillyHoyle 整理而成

如果这对将来的任何人都有帮助:

问题不是WordPress问题,而是服务器配置问题。

有关检查服务器上启用了哪些流包装器的有用说明(用于确保在我的服务器上启用了https)Enable Stream Wrappers

具有相同问题的人发现他们的证书无法验证:Certificate Verification Fails

该问题已由我们的托管提供商修复,解释如下:

该问题是由服务器上的自签名证书引起的。我们可以在php设置中允许自签名证书,也可以加载有效的SSL证书。

通过创建与Openssl公用名匹配的自签名证书,解决了此问题。这修复了所有libxml错误

SO网友:Fayaz

您已加载xml 文件使用您自己的web服务器的URL。虽然您的解决方案解决了问题,但无需加载xml 首先使用URL(HTTP或HTTPS)。由于它位于同一台服务器上,您可以加载xml 改为使用文件路径。

Note: get_template_directory_uri() 函数返回URL,而,get_template_directory() 函数返回本地文件路径。

因此,不是:

simplexml_load_file( get_template_directory_uri() . \'/myxml.xml\' );
代码,您可以使用:

simplexml_load_file( get_template_directory() . \'/myxml.xml\' );
这样,就不会有任何本地URL问题&;速度快得多。

相关推荐

Xmlrpc.php返回405响应代码

我希望有人能帮上忙。一周前,我们在主页上的排名大幅下降。当我转到谷歌搜索控制台时,在删除前2天报告了一个新错误。第一个是xmlrpc。php返回405错误和wp admin/admin ajax。php返回400错误。我现在正在考虑修复错误,但我在另一个网站上看到的一个建议是用新下载的wordpress中的xmlrpc替换xmlrpc。我的问题是,这会把网站搞砸吗?如果您有任何关于避免其他错误的建议,我们也将不胜感激。谢谢这一切似乎都是在插件更新(工具集类型)时发生的,但网站是用它构建的,因此我无法禁用该