diff options
author | Phil Sturgeon <email@philsturgeon.co.uk> | 2010-12-15 16:18:16 +0100 |
---|---|---|
committer | Phil Sturgeon <email@philsturgeon.co.uk> | 2010-12-15 16:18:16 +0100 |
commit | 23174a64277cad04c89d943fa65694299f7424d6 (patch) | |
tree | 7f8cb3089d91d3fdc53ec932f7132a4ab8ef1db7 /system/core | |
parent | fb5523855cb0592abe8e8720d7019fa82acfb054 (diff) |
['404_override'] can now take methods and URI segments, not just a controller name. This is useful for 404 pages on errors/page_missing or /pages/view/404.
Diffstat (limited to 'system/core')
-rw-r--r-- | system/core/Router.php | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/system/core/Router.php b/system/core/Router.php index 9276800c3..79a8b4fcc 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -270,19 +270,17 @@ class CI_Router { // If we've gotten this far it means that the URI does not correlate to a valid // controller class. We will now see if there is an override - if (isset($this->routes['404_override']) AND $this->routes['404_override'] != '') + if (!empty($this->routes['404_override'])) { - if (strpos($this->routes['404_override'], '/') !== FALSE) - { - $x = explode('/', $this->routes['404_override']); + $x = explode('/', $this->routes['404_override']); - $this->set_class($x[0]); - $this->set_method($x[1]); + $this->set_class($x[0]); + $this->set_method(isset($x[1]) ? $x[1] : 'index'); - return $x; - } + return $x; } + // Nothing else to do at this point but show a 404 show_404($segments[0]); } |