Search code examples
.htaccesscodeignitercodeigniter-urlcodeigniter-routing

Codeigniter url/links with mode rewrite htacess: object not found


I am working on project using codeigniter for the first time with bootstrap 3.

My application and system folder from CI is located outside my 'project.main' folder. Everything works fine until I try to use .htaccess in my project.

I am using an XAMPP server and I already loaded the rewrite module and as well as the AllowOverride All and restarted my server.
My url now looks like this 'http://localhost/project.main/' ..
Now my question is since I already removed the 'index.php', my navbar links in bootstrap was like this
'<a href='<?php echo site_url("pages/view/about"); ?>
but if I click it I am directed to the url
'http://localhost/project.main/pages/view/about' which gives me

Object not found' error page.

But if I use href=' <?php echo site_url("index.php/pages/view/about"); ?> I am routed to the right page. Which is the right way of doing it? and under my config.php I have this $config['uri_protocol'] = 'REQUEST_URI '; is it necessary that uri_protocol match what is on the .htaccess under RewriteCond %(REQUEST_URI)..?
What i read in github there are two versions of .htaccess.


Solution

  • You didnt mention changing index page to blank inside config.php ? In case of emergency I give you my simple htaccess. It works when moving application and system folders out of public.

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
    

    Also try to switch uri_protocol option.

    Here's the ultimate solution for index.php How to remove "index.php" in codeigniter's path .