DISQUS

Joomla SEO Blog: Please give me a 404 Page!

  • aeomer · 1 year ago
    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.
  • Chalk · 1 year ago
    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 !
  • spencer · 1 year ago
    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
  • Bincom ICT Solutions · 1 year ago
    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.
  • hummerbie · 1 year ago
    @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
  • daventurewebtech · 1 year ago
    "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"
  • hummerbie · 1 year ago
    @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.
  • Jim · 1 year ago
  • hummerbie · 1 year ago
    @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.
  • Michael Scheidell · 1 year ago
    sh404sef does this fine. you can use a custom 404 page and get the right headers.
    (check anything at www.secnap.com . if you want to hack into it javascript with sql commands, you can do that also.