Welcome to WebmasterWorld Guest from 54.167.216.93

Message Too Old, No Replies

Is this a proper 404?

I've created a custom 404 page. Not sure if it is a true 404

     
12:45 am on Oct 14, 2006 (gmt 0)

10+ Year Member



I'm on a shared server so I'm limited in creating custom 404 pages through their "Custom Error Pages" in the control panel of my host.

When I use a server header checker tool to validate here is what I get testing a missing page:

#1 Server Response: http://www.example.com/abc
HTTP Status Code: HTTP/1.1 200 OK
Content-Length: 237
Content-Type: text/html
Content-Location: http://www.example.com/404.html?404;http://www.example.com:80/abc
Last-Modified: Fri, 13 Oct 2006 22:40:17 GMT
Accept-Ranges: bytes
ETag: "8df5a58e18efc61:560"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Sat, 14 Oct 2006 00:18:37 GMT
Connection: close

It's the '200 OK' that scares me. Is this a true 404?

[edited by: tedster at 1:51 am (utc) on Oct. 14, 2006]
[edit reason] use example.com [/edit]

1:55 am on Oct 14, 2006 (gmt 0)

WebmasterWorld Senior Member tedster is a WebmasterWorld Top Contributor of All Time 10+ Year Member



You're right to be "scared". If the http header says "200" then it's a 200, and not a 404. You could be in duplicate (multi, multu duplicate) content land quickly.

My advice is to go back to the server default 404 as fast as you can, and then work things out with your host if they will accommodate.

8:57 am on Oct 14, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



I think most hosts have the .htaccess error code dynamically generated by the 'Control Panel' they run, which means:

1. They have to hand code the error line into the httpd.conf OR .htaccess.
(Doesn't happen with most.)

2. You have to set the .htaccess file up yourself.
If you have access:
ErrorDocument 404 /your-file.html

3. You have to find a work-around:

Servers do not send full headers to dynamic pages, so you should be able to set your custom error page to error.php, then use the php header() function to send a 'Page Not Found' 404 header, and finish loading your page.

(Always remember to 'NoIndex,NoFollow' any custom error page.)

Justin

11:45 am on Oct 14, 2006 (gmt 0)

WebmasterWorld Senior Member g1smd is a WebmasterWorld Top Contributor of All Time 10+ Year Member Top Contributors Of The Month



In Apache, if you set the URL for the ErrorDocument as a full path with http:// on it then you never get a 404 response.

In Apache, make sure that the URL for the ErrorDocument is just a folder and file URL, like: /errors/error.404.html

The OP is using Windows/IIS and that often sends the wrong codes out. It is harder to set up than Apache.

Make sure you have meta robots noindex set up on all Custom Error Pages, but having nofollow too, is a bad idea in my opinion.

5:35 pm on Oct 14, 2006 (gmt 0)

WebmasterWorld Senior Member tedster is a WebmasterWorld Top Contributor of All Time 10+ Year Member



In my experience, a "custom 404" on Windows servers is implemented incorrectly MOST of the time, not just some of the time. The issues involved can be complex. For instance, in .NET the custom error may be returning a 302 status for incorrect .aspx urls even though IIS itself returns a correct 404 status for .asp extensions. Microsoft has really cooked up a witches brew here.

It is way beyond the scope of the Google forum to get into all that complication; best to take it to our IIS and ASP.NET Forum [webmasterworld.com]. But the message is clear, you should know exactly what you're aiming for --> a URL that does not exist should be returning a 404 [Not Found] or 410 [Gone] http header status.

If you use custom error handling on a Windows server, do not rest until you get this right.

 

Featured Threads

Hot Threads This Week

Hot Threads This Month