• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CodeIgniter 3 routes don't work in HTTPS

#1
In my work we are migrating some websites to HTTPS, but the routes have stopped working under HTTPS and the server returns error 404, they are just putting the /index.php/ and under HTTP they have been working correctly.
I've been searching but nothing I've found works

This is my config.php:

Code:
$config['base_url'] = 'https://myweb.es';
$config['index_page'] = '';
$config['uri_protocol']    = 'REQUEST_URI';


And this the .htaccess:

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

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

Thank you in advance
Reply

#2
When you say "not working", what exactly do you mean?

Is your site returning any error?

More so, your rewrite rule has a ? which is different from what is seen in the docs here. Is that on purpose?

See the difference. Your code:
Code:
RewriteRule ^(.*)$ index.php?/$1 [L]

CI Documentation:

Code:
RewriteRule ^(.*)$ index.php/$1 [L]
Check out my blog: https://lagbaja.dev
Reply

#3
(11-30-2020, 07:48 AM)sammyskills Wrote: When you say "not working", what exactly do you mean?

Is your site returning any error?
Sorry, I missed it, the server returns error 404.

I've already edited the post to make it clear.
Reply

#4
Some servers need the ? mark others do not, it depends on the server configurations.

Also do you have a SSL Certificate installed on your server? Because you need one for https.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply

#5
(11-30-2020, 12:05 PM)InsiteFX Wrote: Some servers need the ? mark others do not, it depends on the server configurations.

Also do you have a SSL Certificate installed on your server? Because you need one for https.
Yes, the certificate is installed and the index load correctly.
The error remains after remove the ?. Do you need any more information, such as Apache configuration to help me?
Reply

#6
On server that run fcgid need the ? mark.. See the below .htaccess file.


Code:
# Multiple Environment config, set this to development, staging or production
# SetEnv FUEL_ENV production

<IfModule mod_rewrite.c>
    RewriteEngine on

    # NOTICE: If you get a 404 play with combinations of the following commented out lines
    #AllowOverride All
    #RewriteBase /wherever/fuel/is

    # Make sure directory listing is disabled
    Options +FollowSymLinks -Indexes

    # Restrict your site to only one domain
    # !important USE ONLY ONE OPTION

    # Option 1: To rewrite "www.domain.com -> domain.com" uncomment the following lines.
    #RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    #RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    # Option 2: To rewrite "domain.com -> www.domain.com" uncomment the following lines.
    #RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    #RewriteCond %{HTTP_HOST} (.+)$ [NC]
    #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

    # Remove index.php from URL
    #RewriteCond %{HTTP:X-Requested-With}    !^XMLHttpRequest$
    #RewriteCond %{THE_REQUEST}                ^[^/]*/index\.php [NC]
    #RewriteRule ^index\.php(.*)$            $1 [R=301,NS,L]

    # make HTTP Basic Authentication work on php-fcgi installs
    <IfModule mod_fcgid.c>
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

    # Send request via index.php if not a real file or directory
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # deal with php-fcgi first
    <IfModule mod_fcgid.c>
        RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
    </IfModule>

    # no php-fcgi, check for sapi and fpm
    <IfModule !mod_fcgid.c>

        # for PHP5 sapi installations
        <IfModule mod_php5.c>
            RewriteRule ^(.*)$ index.php/$1 [L]
        </IfModule>

        <IfModule !mod_php5.c>
            # for PHP7 sapi installations
            <IfModule mod_php7.c>
                RewriteRule ^(.*)$ index.php/$1 [L]
            </IfModule>

            # for fpm installations
            <IfModule !mod_php7.c>
                RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
            </IfModule>
        </IfModule>

    </IfModule>

</IfModule>
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.