I 've been using CodeIgniter in XAMPP.
There was no problem to redirect to a function URL (e.g., function1):
http://localhost/function1
When I changed to WAMP, I got a problem. I could not redirect to function1. However, function1 is still accessed at:
http://localhost/index.php/function1
How to configure WAMP and CodeIgniter to remove index.php?
In order that I could run function1 as I run using XAMPP.
Thank you.
Please try the following:
1) Create .htaccess file in parallel to application folder and just copy paste the following code:
RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
2) Change $config['index_page']
to blank in config.php
in application folder as below:
$config['index_page'] = '';
3) Enable "rewrite_module
" of apache. Click on WAMP symbol -> Apache -> Apache modules -> rewrite_module
Now you can access your site without index.php in url.
Create an .htaccess
file if you didn't already have one and add this code in it:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Make sure you place this in the same directory as your index.php
.
Only three steps are require to remove index.php from url in Codeigniter in WAMP environment.
1) Create .htacess file in parallel to application holder and just copy past the following code:
RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
2) Change $config['index_page'] to blank in config.php in application folder as below:
$config['index_page'] = '';
3) Enable “rewrite_module” of apache.
Restart your apache and its done.
Details : http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/
The mod_rewrite rule suggested in CodeIgniter's official documentation at http://ellislab.com/codeigniter/user-guide/general/urls.html which is
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
worked perfectly for me on WAMP
This would also work:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
# Send request via index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
In these two variations, the only difference is the condition. Basically, what matters is the rewrite rule. Condition can depend on your requirement.
Both of these were not working for me earlier on WAMP. However, the problem was in Apache settings. rewrite_module was not enabled. So, do check that is enabled. You can check if it is enabled by using phpinfo() and check the Loaded modules list.
If you it is not enabled, you can enable it using the WAMPserver manager (accessing it from task bar) Go to Apache>Apache Modules and check 'rewrite_module'
OR
Open httpd.conf and check if LoadModule rewrite_module modules/mod_rewrite.so
is uncommented.
You will have to restart WAMPserver to activate the changes.