diff options
author | Andrey Andreev <narf@devilix.net> | 2015-08-14 12:48:31 +0200 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2015-08-14 12:48:31 +0200 |
commit | c2c7cb7e9d869ba8ba8b16a04e5d8300d462d8de (patch) | |
tree | 8140d9ed939b4c1e2927701b80d276b266479a44 | |
parent | 62fe0117ae087ccfb5fd94cc9f83977c86f2452f (diff) |
Fix #4052
The bug actually had two instances:
- Callback routes with literal matches and HTTP verbs has never worked
- The reported issue in #4052, which is a regression introduced in 3.0.1
with abc299b3a234eb7da1b7e3d257b7eba2da649219
Removed the literal matches logic altogether to avoid similar issues
in the future and reduce code complexity. The same logic is performed
with the regular expressions logic.
-rw-r--r-- | system/core/Router.php | 20 | ||||
-rw-r--r-- | user_guide_src/source/changelog.rst | 1 |
2 files changed, 1 insertions, 20 deletions
diff --git a/system/core/Router.php b/system/core/Router.php index 0c793e418..eb868cd5b 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -372,26 +372,6 @@ class CI_Router { // Get HTTP verb $http_verb = isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : 'cli'; - // Is there a literal match? If so we're done - if (isset($this->routes[$uri])) - { - // Is it an HTTP verb-based route? - if (is_array($this->routes[$uri])) - { - $route = array_change_key_case($this->routes[$uri], CASE_LOWER); - if (isset($route[$http_verb])) - { - $this->_set_request(explode('/', $route[$http_verb])); - return; - } - } - else - { - $this->_set_request(explode('/', $this->routes[$uri])); - return; - } - } - // Loop through the route array looking for wildcards foreach ($this->routes as $key => $val) { diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 971a2341c..061efe8fe 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -15,6 +15,7 @@ Bug fixes for 3.0.2 ------------------- - Fixed a bug (#2284) - :doc:`Database <database/index>` method ``protect_identifiers()`` breaks when :doc:`Query Builder <database/query_builder>` isn't enabled. +- Fixed a bug (#4052) - :doc:`Routing <general/routing>` with anonymous functions didn't work for routes that don't use regular expressions. Version 3.0.1 ============= |