|
Posted by Justin Koivisto on 09/26/32 11:37
d wrote:
> "wd" <n23@nospam.invalid> wrote in message
> news:pan.2006.01.17.11.23.23.321125@nospam.invalid...
>> I want my server to send a 404 header if a URL with a query string is
>> requested. So if a browser or spider requests something
>> like
>> www. my_site .com?p=chair
>> they would get a 404...
>>
>> But if they request
>> www. my_site .com/chair.htm
>> everything would be normal.
>>
>> With some assistance this is what I have so far, but it isn't working
>> correctly. It always displays the 404, even when there is no question
>> mark in the URL. Also, I would like the page to stop displaying anything
>> after the "HTML>>>" if it sends the 404 error, but I'm not sure how to do
>> it:
>>
>> if (isset($_SERVER["QUERY_STRING"])) {
>> header("HTTP/1.0 404 Not Found");
[snip]
> That's because $_SERVER["QUERY_STRING"] is *always* set, regardless of
> whether there's a query string or not.
Not true. With apache, QUERY_STRING will always be set; however, with
other web server software (ie. MS IIS) it will never be set unless you
have done so yourself.
Therefore, to be more portable, you may want to do something more like this:
if(isset($_GET) && is_array($_GET) && count($_GET)){
header("HTTP/1.0 404 Not Found");
echo <<< HTML
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>Not Found</h1>
The requested URL was not found on this server.
</body>
</html>
HTML;
exit;
}
--
Justin Koivisto, ZCE - justin@koivi.com
http://koivi.com
Navigation:
[Reply to this message]
|