Re: If isset query_string return 404
- From: Justin Koivisto <justin@xxxxxxxxx>
- Date: Tue, 17 Jan 2006 08:33:52 -0600
d wrote:
> "wd" <n23@xxxxxxxxxxxxxx> wrote in message
> news:pan.2006.01.17.11.23.23.321125@xxxxxxxxxxxxxxxxx
>> 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@xxxxxxxxx
http://koivi.com
.
- Follow-Ups:
- References:
- Prev by Date: Re: Explicit declaration of variables
- Next by Date: Re: If isset query_string return 404
- Previous by thread: Re: If isset query_string return 404
- Next by thread: Re: If isset query_string return 404
- Index(es):
Relevant Pages
|