Route for Custom 404 Page in 5.7
Permalink 1 user found helpful
Hi all, can someone please point me in the right direction for creating custom 404 pages in 5.7. I see in app.php we have the following core paths available for overide, but how do we route to a theme specific 404?
/** * Route themes */ 'theme_paths' => array( '/dashboard' => 'dashboard', '/dashboard/*' => 'dashboard', '/account' => VIEW_CORE_THEME, '/account/*' => VIEW_CORE_THEME, '/install' => VIEW_CORE_THEME, '/login' => array( VIEW_CORE_THEME, VIEW_CORE_THEME_TEMPLATE_BACKGROUND_IMAGE ), '/register' => VIEW_CORE_THEME, '/maintenance_mode' => VIEW_CORE_THEME,
Viewing 15 lines of 17 lines. View entire code block.
I'm also having trouble activating a 404 page for redirecting old pages.
@mrjcgoodwin
@anete
I believe you just need to create a theme page template named page_not_found.php.
Without page_not_found.php, I believe view.php is used. Without view.php, a bare page is used.
@anete
I believe you just need to create a theme page template named page_not_found.php.
Without page_not_found.php, I believe view.php is used. Without view.php, a bare page is used.
Spot on - you're exactly right, thank you! :-)
Can anyone tell me how I can keep my main navigation in a 404 page. I have it in a GlobalArea where the autonav is selected and its placed inside the header area. When I hit the 404 I have no main nav...what could cause this? Thanks
Don't quote me on this - but I'm sure I've come across this as a known bug before. Global areas not working on the home page. It could be related?
You can hard code your navigation maybe as a workaround:http://c5blog.jordanlev.com/blog/2012/04/hard-coded-autonav-options...
You can hard code your navigation maybe as a workaround:http://c5blog.jordanlev.com/blog/2012/04/hard-coded-autonav-options...
This won't work because I am working with a multilingual site, the header shows up but the autonav it seems is not working from the autonav block that I put into the global area. If I hard code it I won't get specific nav items I need.
plus this nav needs to work across one file in the header.php file and then included in subsidery page templates
Ah ok - that's a pain. I've just double checked, the site I've been working on as discussed above is definitely using multiple global areas on my 404 page (page_not_found.php) so it definitely can work!
I made my page not found template by just cloning my default template and then putting in 404 content along with hard coding the 404 headers to the top of the template as follows
I made my page not found template by just cloning my default template and then putting in 404 content along with hard coding the 404 headers to the top of the template as follows
ah okay so for instance in mine I will have this:
page_not_found.php
In header.php I have the GlobalArea('Header Nav') which is not working. Shall I just paste the whole header.php content into the page_not_found.php template?
page_not_found.php
<?php defined('C5_EXECUTE') or die('Access Denied.'); header("HTTP/1.0 404 Not Found"); $view->inc('elements/head.php'); $view->inc('elements/header.php'); $view->inc('elements/main_hero.php'); ?> <div id="latest-news" class="main"> <section class="grey single-area-top"> <div class="news-top"> <article class="container accordian-container"> <div class="small-12 medium-9 large-9 columns"> <h1><?php echo t('Sorry the page you were looking for cannot be found'); ?></h1> <?php echo t('Some 404 blurb here'); ?> </div>
Viewing 15 lines of 24 lines. View entire code block.
In header.php I have the GlobalArea('Header Nav') which is not working. Shall I just paste the whole header.php content into the page_not_found.php template?
That's very similar to my page, I don't see why it shouldn't work.
The only real difference is (right or wrongly, I'm more design not dev) my headers/navs etc are being called in with traditional php includes rather than the C5 style view includes.
Have you tried all the usual tricks - clearing caches etc?
Maybe a better dev than me has some ideas?
The only real difference is (right or wrongly, I'm more design not dev) my headers/navs etc are being called in with traditional php includes rather than the C5 style view includes.
Have you tried all the usual tricks - clearing caches etc?
Maybe a better dev than me has some ideas?
Another thought - is your nav definitely not loading, or just not showing any links? Could it be that the single pages are at the wrong level for you autonav block settings and therefore not showing any pages?
I think that's it after looking into it more
In my application folder I have a page
/application/themes/CustomThemeFolder/page_not_found.php
the content of this page is below
Now I have application/single_pages/page_not_found.php
content of this file below
Since none of these solved my problem, I created a new Page Type > Page Template and Page through C5 Admin Panel. Screenshot Attached
The Link URL to that page is here >http://kaakkakkoottam.com/index.php/page-not-found...
But whenever an actual Page Not Found error happened the page shows default elemental theme only,(http://kaakkakkoottam.com/index.php/fdf)
not my custom theme. What shall I do now ?
thanks
Jeevan
/application/themes/CustomThemeFolder/page_not_found.php
the content of this page is below
<?php defined('C5_EXECUTE') or die("Access Denied."); $this->inc('elements/header.php'); ?> <main> <div class="container"> <div class="row"> <div class="col-sm-9 col-sm-offset-3"> <div class="jumbo"> <h1><?php echo t('404 Error')?></h1> <p><?php echo t('Page not found.')?></p> </div> </div> </div> </div> </main>
Viewing 15 lines of 16 lines. View entire code block.
Now I have application/single_pages/page_not_found.php
content of this file below
<?php defined('C5_EXECUTE') or die("Access Denied."); <?php header("HTTP/1.0 404 Not Found"); ?> $this->inc('elements/header.php'); ?> <main> <div class="container"> <div class="row"> <div class="col-sm-9 col-sm-offset-3"> <div class="jumbo"> <?php $a = new Area('Main'); ?> <?php $a->display($c); ?> <a href="<?php echo DIR_REL?>/"><?php echo t('Back to Home')?></a> </div> </div> </div>
Viewing 15 lines of 18 lines. View entire code block.
Since none of these solved my problem, I created a new Page Type > Page Template and Page through C5 Admin Panel. Screenshot Attached
The Link URL to that page is here >http://kaakkakkoottam.com/index.php/page-not-found...
But whenever an actual Page Not Found error happened the page shows default elemental theme only,(http://kaakkakkoottam.com/index.php/fdf)
not my custom theme. What shall I do now ?
thanks
Jeevan
I don't think you need the template in single pages, as on my site it automatically detected page_not_found.php in my theme folder.
Not sure why it's not picking your one up - have you tried clearing your cache?
Not sure why it's not picking your one up - have you tried clearing your cache?
@mrjcgoodwin
hmm.The cache is disabled now. I mean from the start I have disable the cache
I did not enable the pretty URL yet, the pages are still routing through index.php
Would that be an issue ?? I need to enable the custom theme into the 404 page not found error page
Like thishttp://kaakkakkoottam.com/index.php/page-not-found...
hmm.The cache is disabled now. I mean from the start I have disable the cache
I did not enable the pretty URL yet, the pages are still routing through index.php
Would that be an issue ?? I need to enable the custom theme into the 404 page not found error page
Like thishttp://kaakkakkoottam.com/index.php/page-not-found...
replied on Jan 5, 2016 at 3:58 am Permalink Best Answer Reply MrKDilkington @mrjcgoodwin @anete I believe you just need to create a theme page template named page_not_found.php. Without page_not_found.php, I believe view.php is used. Without view.php, a bare page is used. /////
@MrKDilkington
Where should create this template file ? I created one in my application/customthemefolder and also in application/singlePage folder. I created a new Page through Dashboard but nothing all works
@jeevanism
I believe page_not_found.php should be placed in your theme folder with the rest of your page templates.
I believe page_not_found.php should be placed in your theme folder with the rest of your page templates.
MrKDilkington replied on Jan 8, 2016 at 6:01 am Permalink Reply MrKDilkington @jeevanism I believe page_not_found.php should be placed in your theme folder with the rest of your page templates.
There is already a page_not_found.php file in my application/themes/CustomThemeFolder The content of that page is below
<?php defined('C5_EXECUTE') or die("Access Denied."); $this->inc('elements/header.php'); ?> <main> <div class="container"> <div class="row"> <div class="col-sm-9 col-sm-offset-3"> <div class="jumbo"> <h1><?php echo t('404 Error')?></h1> <p><?php echo t('Page not found.')?></p> </div> </div> </div> </div> </main>
Viewing 15 lines of 16 lines. View entire code block.
but still my page not found page shows default elemental theme, not the custom theme
404 page -http://kaakkakkoottam.com/index.php/sdsds...
my theme page -http://kaakkakkoottam.com/index.php/credit...
please advise.
thank you
Jeevz
@MrKDilkington This is what I did and it worked fine.
@jeevanism - I would be surprised if it was the pretty URLs, but it wouldn't do any harm to turn them on and check.
@jeevanism - I would be surprised if it was the pretty URLs, but it wouldn't do any harm to turn them on and check.
Is your .htaccess file set up correctly? (turning on pretty urls will provide you with the right content for this file).
I notice that if you go to
http://kaakkakkoottam.com/index.php/sdsds...
and
http://kaakkakkoottam.com/sdsds...
you get 2 different 404 pages.
I notice that if you go to
http://kaakkakkoottam.com/index.php/sdsds...
and
http://kaakkakkoottam.com/sdsds...
you get 2 different 404 pages.
I notice that if you go to http://kaakkakkoottam.com/index.php/sdsds... and http://kaakkakkoottam.com/sdsds... you get 2 different 404 pages.
Yes, thats because, the first one is routing through index.php, since it shows the c5 theme template. But the second one is actually showing the cpanel default error page only.
I did not enable the pretty URLs yet because I have yet to finish the development of the website, adding pages and contents. I did not touch any thing with .htaccess yet.
Themeing the 404 error page should not be this much hurdle !! :-(
There's definitely something odd going on in your case - I've never found custom 404's with C5 to be particularly difficult - I only started this thread to clarify some differences in implementation with the new 5.7, and it proved simple enough once I knew how.
I'm sure there's something simple going on here that you'll kick yourself for! Have you checked the file permissions for your uploaded not found file?
Also, just because you are still working on the site I don't see why turning on the pretty urls would cause you any problems - you could turn them off again once you've tested.
I'm sure there's something simple going on here that you'll kick yourself for! Have you checked the file permissions for your uploaded not found file?
Also, just because you are still working on the site I don't see why turning on the pretty urls would cause you any problems - you could turn them off again once you've tested.
@Mrk, @mrjc
Finally Happy News
Steps I have done now
1. I deleted the page_not_found.php file from /application/single_pages
2. I edited the page_not_found.php file from /applications/themes/CustomTheme folder
3. I added my custom theme div blocks( div block code from my fullpagetheme.php) to the page_not_found.php
to make more clear
my old page_not_found.php contents as follows
My new working page_not_found.php inside /application/themes/customethemefolder/
is below
Now the 404 page renders with my custom theme only :)
http://kaakkakkoottam.com/index.php/sdfkdf...
thanks for the help, now I am going to enable same theme / error display message show on my search page (no result found)
--
Jeevz
Finally Happy News
Steps I have done now
1. I deleted the page_not_found.php file from /application/single_pages
2. I edited the page_not_found.php file from /applications/themes/CustomTheme folder
3. I added my custom theme div blocks( div block code from my fullpagetheme.php) to the page_not_found.php
to make more clear
my old page_not_found.php contents as follows
<?php defined('C5_EXECUTE') or die("Access Denied."); <?php header("HTTP/1.0 404 Not Found"); ?> $this->inc('elements/header.php'); ?> <main> <div class="container"> <div class="row"> <div class="col-sm-9 col-sm-offset-3"> <div class="jumbo"> <?php $a = new Area('Main'); ?> <?php $a->display($c); ?> <a href="<?php echo DIR_REL?>/"><?php echo t('Back to Home')?></a> </div> </div> </div>
Viewing 15 lines of 18 lines. View entire code block.
My new working page_not_found.php inside /application/themes/customethemefolder/
is below
<?php defined('C5_EXECUTE') or die("Access Denied."); $this->inc('elements/header.php'); ?> <?php header("HTTP/1.0 404 Not Found"); ?> <div class="container singlepage"> <div class=" example-popover"> <div class="col-md-2"> <div id="fixedsidebar"> <div class="popover left"> <div class="arrow"></div> <div class="caption text-center"> <?php $a = new Area('Sidebar'); $a->display($c); ?>
Viewing 15 lines of 38 lines. View entire code block.
Now the 404 page renders with my custom theme only :)
http://kaakkakkoottam.com/index.php/sdfkdf...
thanks for the help, now I am going to enable same theme / error display message show on my search page (no result found)
--
Jeevz
@jeevanism
I would put page_not_found.php in this folder application/themes/crow.
application/themes/crow/page_not_found.php
Try removing the page_not_found.php you put in the single pages folder:
application\single_pages
After removing it, go to the Single Pages page and refresh the Page Not Found single page (click the circling arrows icon).
Dashboard > Pages & Themes > Single Pages
I would put page_not_found.php in this folder application/themes/crow.
application/themes/crow/page_not_found.php
Try removing the page_not_found.php you put in the single pages folder:
application\single_pages
After removing it, go to the Single Pages page and refresh the Page Not Found single page (click the circling arrows icon).
Dashboard > Pages & Themes > Single Pages
@MrKD
I kind of have done exactly as you said. I removed the file and added to my theme folder. And instead going through DashBoard, I directly edited the php file and then added contents through dashboard :P
any how, its working now.
Another milestone, I enabled same theme for my search page / search not found page. Please take a look
http://kaakkakkoottam.com/index.php/search?search_paths[]=&quer...
please search some thing not in the side
http://kaakkakkoottam.com/index.php...
-- Happy Concreting !! -
Jeevs
I kind of have done exactly as you said. I removed the file and added to my theme folder. And instead going through DashBoard, I directly edited the php file and then added contents through dashboard :P
any how, its working now.
Another milestone, I enabled same theme for my search page / search not found page. Please take a look
http://kaakkakkoottam.com/index.php/search?search_paths[]=&quer...
please search some thing not in the side
http://kaakkakkoottam.com/index.php...
-- Happy Concreting !! -
Jeevs
@jeevanism
Please create a new discussion for a different topic.
Please create a new discussion for a different topic.
Glad you got it all sorted jeevanism - There has not been many issues I've come across with C5 that this excellent community have not been able to solve :-)
And I'm really growing into 5.7 now I've had a chance to do a few sites with it.
And I'm really growing into 5.7 now I've had a chance to do a few sites with it.