Was kann denn die Ursache sein? $_SERVER['HTTP_HOST'] müsste doch eigentlich immer gesetzt sein, wenn man über Browser die Seite aufruft oder?
Du hast die Einschränkung genannt: "wenn man über Browser die Seite aufruft". Ich vermute, das ist nicht der Fall, z.B. bei sniffern:
nc example.com 80
GET /
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.<br />
</p>
</body></html>
Tipps:
- error-Log mit dem access-log vergleichen.
- virtuellen Server einrichten auf dem Default-Server (also mit der IP-Adresse bzw. unbekannten Hostnamen) nur eine statische Fehlerseite zeigen.