Home » Php » .htaccess – index.php not removing https CodeIgniter

.htaccess – index.php not removing https CodeIgniter

Posted by: admin July 12, 2020 Leave a comment


index.php is not removing while i use https but it works for http.
What I need to do is my site work properly such as it works on http and https both. Anybody faced same issue help me to fix this.

Ex: In http

  1. http://xyz.mydomain.com/users/login //works fine
  2. http://xyz.mydomain.com/index.php/users/login //works fine

IN https

1) https://xyz.mydomain.com/users/login // 404 page not found
2) https://xyz.mydomain.com/index.php/users/login // works fine

MY htaccess code

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

My base url is set as

$root=(isset($_SERVER['HTTPS']) ? "https://" : "http://").$_SERVER['HTTP_HOST'];
$root.= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;
How to&Answers:

Seems that there is a problem in your host file.
If you are using apache, change your host file like;

<VirtualHost *:443>
   ServerAdmin [email protected]
   DocumentRoot /path
   ServerName xyz.mydomain.com
   ServerAlias www.xyz.mydomain.com

   SSLEngine On
   SSLOptions +StrictRequire
   SSLCertificateFile /path to ssl file/mydomain.crt
   SSLCertificateKeyFile /path to ssl file/mydomain.key
   SSLProtocol TLSv1
    <Directory "/path">
        Require all granted
        Options -FollowSymLinks -Includes -ExecCGI -Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    RewriteEngine On

Now chnage your htaccess file like:

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   RewriteEngine On
   RewriteCond %{SERVER_PORT} 80
   RewriteRule ^(.*)$ https://xyz.mydomain.com/$1 [R=301,L]

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

Happy Coding 🙂