首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义索引: wordpress中的HTTP_HOST

未定义索引: wordpress中的HTTP_HOST
EN

Stack Overflow用户
提问于 2015-01-31 21:03:41
回答 2查看 2.7K关注 0票数 1

我的日志中有以下来自wordpress的错误:“未定义的索引: HTTP_HOST”。当然,该文件请求$_SERVER‘’HTTP_HOST‘,但是当通过Apache访问网站时,这是怎么看的呢?我已经通过var_dump验证了这个变量的存在和设置。

我想为我的日志清除这个错误,并找出这是如何可能的。我没有wordpress CLI cron,那么这是什么呢?我要指出,这是一个随机的请求,产生了这个错误。当我浏览博客时不会发生这种情况。

下面是调用堆栈(.= /)::

代码语言:javascript
复制
0) 17,
1) ... var... www2... wordpress... wp-blog-header.php 16, 
2) ... var... www2... wordpress... wp-includes... template-loader.php 74, 
3) ... var... www2... wordpress... wp-content... themes... oneengine... page.php 1, 
4) get_header 45, 
5) locate_template 477, 
6) load_template 501, 
7) ... var... www2... wordpress... wp-content... themes... oneengine... header.php 134, 
8) wp_nav_menu 328, 
9) _wp_menu_item_classes_by_context 549
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-31 21:17:24

一个非法的请求可能不包括它,所以它总是可能的。

最好的预防方法是在使用之前检查它是否存在,就像每个变量一样。

代码语言:javascript
复制
<?php
if (array_key_exists('HTTP_HOST', $_SERVER) {
  //use $_SERVER['HTTP_HOST']
}
?>

或者,因为这是一个非法的请求,你可以阻止它。

代码语言:javascript
复制
<?php
if (!array_key_exists('HTTP_HOST', $_SERVER) {
    if (!headers_sent()) {
        $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0');
        header($protocol . ' 404 Not Found');
    }

    echo '<h1>Not Found</h1>';
    exit;
}
?>
票数 2
EN

Stack Overflow用户

发布于 2015-01-31 21:10:13

看来这可能是因为一个错误的要求。如果客户端不发送此标头,那么服务器上也不存在它,即使它是apache。一定是脚本机器人的。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28256508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档