user1331534
user1331534

Reputation:

Remove index.php from URL in code Igniter

i have read posts regarding this but that did not gave answer to my problem i have set everything i found on forums of code igniter and SO's questions

currently i have following settings : .htaccess file

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ index.php/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    #This last condition enables access to the images and css folders, and the robots.txt file
    RewriteCond $1 !^(index\.php|(.*)\.swf|images|robots\.txt|css|docs|cache)
    RewriteRule ^(.*)$ index.php/$1 [L]
    </IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    ErrorDocument 404 /application/errors/404.php
</IfModule>

and i also have set $config['index_page'] = '';

but this is not working there is not change in URL if i type *http://localhost:8088/crud_demo/index.php/login* it works but if i type *http://localhost:8088/crud_demo/login* it shows Not Found Error

My Route config

$route['register'] = "register";
$route['manage'] = "manage";
$route['default_controller'] = "login";
$route['404_override'] = '';

Upvotes: 1

Views: 1123

Answers (3)

Bharat Kr. Lal
Bharat Kr. Lal

Reputation: 91

Change AllowOverride None to AllowOverride All in my virtual host file at /etc/apache2/sites-available/000-default.conf in ubuntu

Change AllowOverride None to AllowOverride All in my virtual host file at /etc/apache2/sites-available/default.conf in windows

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride All    <---- replace None with All
    </Directory>
    <Directory /var/www >
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All   <---  replace None with All
            Order allow,deny
            allow from all
    </Directory>
....

Then put this code in .htaccess file in root folder in codeigniter

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

It will definately work.

Upvotes: 1

Jack
Jack

Reputation: 5768

RewriteRule ^crud_demo/(.*)$ crud_demo/index.php/$1

http://martinmelin.se/rewrite-rule-tester/ to test URL rewrites.

I think CodeIgniter has it's own way of routing URLs like other PHP frameworks. Take a look here: http://codeigniter.com/user_guide/general/routing.html

Upvotes: 0

Lawrence Cherone
Lawrence Cherone

Reputation: 46602

If crud_demo is a subfolder of your root dir then you should change

RewriteBase /

to

RewriteBase /crud_demo

Upvotes: 0

Related Questions