HTTP到HTTPS:XSL中的Sitemap返回空白页面

时间:2017-01-05 07:22:04

标签: php xml http https

我最近将网站从HTTP迁移到了HTTPS。 我修改了所有代码,除了站点地图外,一切正常。

文件sitemap.php应该通过XSL文件返回一个风格化的URL列表。

在HTTP中一切正常......但是当移动到HTTPS时,它会在Chrome中返回空白页面,在IE中它会返回一个没有风格化的页面。

我将网址改编为XSL文件和PHP,从 http https 但返回的页面仍为空白

在下面附带的屏幕截图中,Chrome上的开发者工具的结果 enter image description here

请在这里输入网址 www.liciafox.net/sitemap.php

正如我所说,当我将协议从 http 更改为 https

我非常感谢你提出任何建议/帮助

2 个答案:

答案 0 :(得分:0)

在sitemap.php中添加以下标头

header("Content-type: application/xslt+xml");

答案 1 :(得分:0)

我想我找到了解决方案。有用。但是我不知道这是不是正确的方法。

sitemap.php

上的以下行
// Header forming
header("Content-type: application/xml; charset=utf-8");
echo "<?xml version='1.0' encoding='UTF-8'?>" . "\n";
echo "<?xml-stylesheet type='text/xsl' href='https://{$url}/sitemap.xsl'?>" . "\n";
echo '<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"' . "\n";
echo '        xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"' . "\n";
echo '        xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9 https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' ."\n";

不应包含对外部网站的HTTPS调用。但它必须只是HTTP(除了调用我的网站)

// Header forming
header("Content-type: application/xml; charset=utf-8");
echo "<?xml version='1.0' encoding='UTF-8'?>" . "\n";
echo "<?xml-stylesheet type='text/xsl' href='https://{$url}/sitemap.xsl'?>" . "\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"' . "\n";
echo '        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' . "\n";
echo '        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' ."\n";

XSL文件上标题的类似方式。 下面的一个不起作用:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" 
                xmlns:html="https://www.w3.org/TR/REC-html40"
                xmlns:sitemap="https://www.sitemaps.org/schemas/sitemap/0.9"
                xmlns:xsl="https://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html xmlns="https://www.w3.org/1999/xhtml">

此处位于工作地点下方,其中呼叫HTTPS仅位于代码<html>上:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" 
                xmlns:html="http://www.w3.org/TR/REC-html40"
                xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html xmlns="https://www.w3.org/1999/xhtml">