返回 url 并出现 404 错误,但内容存在
所以,我想获取网址“http://example.com/sitemap.xml”。内容(xml)已返回并显示在浏览器中。但在 Firebug 中,我看到了该 url 的状态代码 - 404。因此,当我将此 url 发布给 google 网站管理员时,他们说“常规 HTTP 错误:404 未找到”。
我无法理解它是如何发生的 - 在浏览器中我看到一个有效的 xml,但这个 url 返回 404 错误。
服务器设置?
ps sitemap.xml 不是文件。内容是使用 php 生成的。
So, I would like to get url "http://example.com/sitemap.xml". Content(xml) was returned and shown in browser. But in firebug I saw that status code of this url - 404. So, when I had posted this url to google webmaster they said "General HTTP error: 404 not found".
I can not understand how it could happen - In browser I see a valid xml, but this url return 404 error.
Server settings?
p.s. sitemap.xml is not a file. Content is generating using php.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据我们在问题评论中的对话:
1) 在代码的最顶部明确指定
200
代码:header("HTTP/1.0 200 OK", true);
2 )根据您的.htaccess,我认为对sitemap.xml的请求不会直接处理到index.php,而是首先通过404处理程序处理。我建议对 sitemap.xml 制定明确的重写规则,将其重定向到index.php(最好是重定向到专用脚本(例如
sitemap.php
),以排除index.php 可能无意引入的任何复杂情况)。Based on our conversation in question's comments:
1) Specify
200
code explicitly on the very top of your code:header("HTTP/1.0 200 OK", true);
2) Based on your .htaccess I think that the request for sitemap.xml is not handled directly to index.php, instead it goes via 404 handler first. I would suggest to have explicit rewrite rule for sitemap.xml to be redirected to index.php (preferably to a dedicated script (e.g.
sitemap.php
) to exclude whatever complications index.php may unintentionally introduce).