Vicky
Vicky

Reputation: 9585

Codeigniter URL not working without index.php

I've just set up a new webiste http://www.reviewongadgets.com

But there is a problem with URL rendering

When I put an URL as below it's not working and gives page not found error http://www.reviewongadgets.com/latest-mobile

But it works with http://www.reviewongadgets.com/index.php/latest-mobile

I don't want to show index.php in my URL, it should be http://www.reviewongadgets.com/latest-mobile , can you please suggest me what should I do ?

This is my .htaccess file contents:

RewriteEngine on

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

Config file contents:

$config['base_url'] = "http://www.reviewongadgets.com";
$config['index_page'] = "";

Same type configuration working for my another website

Changed my .htaccess content to

<IfModule mod_rewrite.c>
    RewriteEngine On

 RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

Upvotes: 5

Views: 9967

Answers (4)

Pankaj Rayak
Pankaj Rayak

Reputation: 1

In case you are on Ubuntu, edit the file /etc/apache2/apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

and change it to;

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

then,

sudo service apache2 restart

You may also need to do sudo a2enmod rewrite to enable module rewrite.

Upvotes: 0

Durgesh Suthar
Durgesh Suthar

Reputation: 3274

You might not have rewrite_module module loaded. Try running below command.

sudo a2enmod rewrite

Upvotes: 0

Saung Hikmah
Saung Hikmah

Reputation: 51

i aggree with Vlakarados, but i will share my .htaccess setting

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

its work perfectly.

i hope that's work to for your CI website

Upvotes: 5

Sergey Telshevsky
Sergey Telshevsky

Reputation: 12197

The most common solution to this problem is usually the missing question mark ? after index.php in .htaccess, so

RewriteRule ^(.*)$ index.php/$1 [L]

should be

RewriteRule ^(.*)$ index.php?/$1 [L]

E.G. on my Windows XAMPP, I do not need the "?", but in a Linux hosting environment it is usually required.

Upvotes: 6

Related Questions