[英]Undefined index: HTTP_HOST in wordpress
我在日志中從wordpress中收到以下錯誤:“未定義索引:HTTP_HOST”。 當然,文件正在請求$ _SERVER ['HTTP_HOST'],但是當通過Apache訪問網站時如何看待呢? 我已經通過var_dump驗證了此var存在並已設置。
我想清除我的日志中的錯誤,並找出可能的情況。 我沒有wordpress CLI cron,這可能是什么? 我要指出的是,這是一個產生此錯誤的隨機請求。 當我瀏覽博客時,它不會發生。
這是調用堆棧(... = /):調用堆棧:
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
非法請求可能不包含該請求,因此它始終是可能的。
最好的預防方法是像使用每個變量一樣,在使用前檢查它是否存在。
<?php
if (array_key_exists('HTTP_HOST', $_SERVER) {
//use $_SERVER['HTTP_HOST']
}
?>
或者,由於這是非法請求,您可以將其阻止。
<?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;
}
?>
似乎這可能是由於錯誤的請求。 如果客戶端不發送此標頭,則即使它是apache,它在服務器上也不存在。 必須來自腳本機器人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.