Search code examples
codeignitercodeigniter-url

Combine friendly url and query string


How to make a working url like this: example.com/controller/method?id=1&cat=2


Solution

  • It is possible by setting $config['enable_query_strings'] = TRUE; in your config.php file (As DamienL answered). I just tried with a fresh CodeIgniter installation from here.

    However, it appears there must be at least 2 variables (separated with a "&") for it to work.

    Here are the steps I took to make this happen:

    In config.php, I changed $config['base_url'] to the appropriate directory and set $config['enable_query_strings'] = TRUE;

    In the controllers directory I created the following class:

    class Testing extends Controller {
    
        function Testing()
        {
            parent::Controller();   
        }
    
        function index()
        {
            $this->load->view('welcome_message');
        }
    }
    
    /* End of file testing.php */
    
    /* Location: ./system/application/controllers/testing.php */
    

    I can then access the index function with a query string, but only if there are 2 or more variables like this:

    localhost/CodeIgniter_1.7-1.2/index.php/testing/index?id=123&cat=abc

    If you absolutely need both the segment-based and query string-based approaches, but only need one variable in a particular query string, I suppose you could add a second "dummy" variable and just ignore it.