Please give me a 404 Page!
I really, really want a 404 page for my Joomla sites!
I know, you can create one via a content page, if its a static or dynamic, and set that URL in the configuration of your SEF component…
Been there, done that.. even do for most of my sites anyway.
BIG problem with this is, not that I loose my visitor, because I make sure that it looks good and I give several options to choose alternatives to go into the site.
Biggest problem with the this option via Joomla and a SEF or redirect components is the fact that my Error page headers are wrong!!
No, not the text headers, my HTTP headers!
Check yours via this On-line Header Checker.
Yes I can create a separate file and set an Error document setting in my .htaccess file, works also, but not so good for me, I want my CMS to handle this file!
Now if you use WordPress, you are fine, because WordPress gives you the right headers, and you can manage you Error pages mostly by editing you 404.php page that is included in the Template.
But for Joomla, whatever you do, you always get a status 200 OK, even if its wrong… because every thing goes via the index.php!
I would like to have the ability to edit my 404 page as a special page in Joomla itself, not depending on a SEF Component like Joomsef (who has it Build in….but I don’t like the Advertisements within the Component..)
On of the problems this lack of a good 404 Error page is that, if you remove pages from you website, or change the URLs, they still keep popping up in the Search results pages…. Joomla says they have a status 200 OK so no need to take them out of the Index!
So if anybody knows how to solve this in an easy way… please leave a comment and I will test and come back on it..
Tags: Joomla! Please give me a 404 Page!
Related Posts
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.
Comments
19 Responses to “Please give me a 404 Page!”







Hi I see you have solved this
PLEASE share how its done
if i mistype a url
example
http://www.pathos-seo.com/joomlablog/please-give-me-a-404-page/fd
I get a proper 404 responce
HTTP/1.1 404 Not Found
Ive been looking for this for years.
pls help
@Jason
The ulr you use, is for this blog, that runs on WordPress.
For Joomla the only one that does a proper 404 is the sh404SEF component.
Hi addon sh404SEF
doesnt return a HTTP/1.1 404 Not Found status
it returns a 200.
guess it not meant to be
@Jason
Strange, if I do a check on http://www.webconfs.com/http-header-check.php
For the error page of my Joomla site with sh404SEF component, http://www.hummerbie.com/wrong give a 404 error.
I use the sh404sef s version.
hm… guess i need to play with the settings.
The default for me didnt return a 404 status.
guess ill play with it a bit more.
Did you have to do anything specific to get the 404 status? or is there a proper way to configure it ?
@Jason
Just put some text in the 404 page setup of the configuration and it should work.
I will double check if I did something else, but to my knowledge that was it.
Easy to do! Create a 404 page for yourself using PHP – call it what you want depending its use e.g myerrordochandler.php. Change the System SEF to point to that file. Now the tricky bit. Explode the URL separating the url path and get_vars, check if this is something you want to handle or something you want a 404 page for.
If you want to handle the page with actual content then ensure you put on the PHP statement header(”HTTP/1.1 200 OK”); BEFORE ANY OTHER OUTPUT TO THE BROWSER!!! If anything has gone to the browser already you will get a 'headers already sent' notice
If you want to send a real '404 page' to stop missing pages being indexed then put a header(”HTTP/1.0 404 Not Found”); statement in your PHP. Same rule applies – no output before the header statement. You can ob_start() and ob_end_flush() to buffer your output until after the header is sent if you are so inclined.
BTW if you have 404 redirection on a site you coded yourself (not Joomla etc) you can use .htaccess or httpd.conf settings to redirect to your ErrorDocument 404 handler (PHP or whatever your personal poison) and then use the header() function to tell the browser it is a real page not a 404 page! A very cool and completely standard way to create SEF – not like the Joomla junk way.
Interesting answer, but it refers to several points that it would be nice to develop to make it useful :
1°) Which version of Joomla ? 1.0, 1.5 Legacy or 1.5 ?
2°) How and where can i “Change the System SEF to point to that file”
3°) Do you have an example for “the tricky bit. Explode the URL separating the url path and get_vars, check if this is something you want to handle or something you want a 404 page for.”
4°) I suppose “then ensure you put on the PHP statement header(”HTTP/1.1 200 OK”); ” is at the beginning of the template's index.php
5°) header(”HTTP/1.0 404 Not Found”); // is not written this way, i suppose, but wiht Location: ??? and how does it refer to myerrordochandler.php
6°) How to “ob_start() and ob_end_flush() to buffer your output until after the header is sent if you are so inclined”
Thanks for the input but I don't have your skill ans a working example would help very much !
All you've got to do really is read the following page
http://docs.joomla.org/Custom_error_pages
I got to it after checking your post… it includes stuff that @aeomer was talking about too.
@Bincom: True, the docs section is great for finding solutions for your problems.
But for most Joomla webmasters this is to complicated. Using sh404SEF will give you the opportunity to modify your 404 page via a normal contant editing screen AND produce the right 404 error code for Joomla 1.5 and Joomla 1.0
“I am using sh404 component at my site. And index.php is coming in between my urls can any one help me to remove it.
http://daventurewebtech.com/index.php/services…. i want to remove index.php and is should be look link this http://daventurewebtech.com/services.html“
@Daventurewebtech: Please goto the sh404sef component and switch on “extend display” on the right site of the component screen.
Then open the configuration screen , and click the Tab “Advanced”, there you will find an option “Rewriting mode” you should set this to “with .htaccess (rewrite mode” from the dropdown choices.
Make sure you have your a .htaccess file in the root of your Joomla installation.
Check if every thing works out, on some hosing providers you need to change some lines.
Documentation on the content of that .htaccess file is also included in the SEF documentation that you can reach from the component control panel.
Will this help?
http://docs.joomla.org/Custom_error_pages
@Jim, It really helps thanks for the link.
Although this post was writen in the Joomla 1.0.x era, we now face a new challenge and this will most certainly help to create a better 404 page then we currently get from a Joomla 1.5 install.
sh404SEF is (not yet) ready to handle template based 404 error pages.
sh404sef does this fine. you can use a custom 404 page and get the right headers.
(check anything at http://www.secnap.com . if you want to hack into it javascript with sql commands, you can do that also.
Just make a php page with:
<?php
header( 'Location: http://www.yoursite.com/error_page.html'; ) ;
?>
and place it in the templates/system folder and replace the error.php file
I just redirect to home page and leave no 404 page info