CodeIgniter Forums
CodeIgniter 3 routes don't work in HTTPS - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5)
+--- Forum: General Help (https://forum.codeigniter.com/forumdisplay.php?fid=24)
+--- Thread: CodeIgniter 3 routes don't work in HTTPS (/showthread.php?tid=78100)



CodeIgniter 3 routes don't work in HTTPS - alfonsosach - 11-30-2020

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


RE: CodeIgniter 3 routes don't work in HTTPS - sammyskills - 11-30-2020

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]



RE: CodeIgniter 3 routes don't work in HTTPS - alfonsosach - 11-30-2020

(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.


RE: CodeIgniter 3 routes don't work in HTTPS - InsiteFX - 11-30-2020

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.


RE: CodeIgniter 3 routes don't work in HTTPS - alfonsosach - 12-01-2020

(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?


RE: CodeIgniter 3 routes don't work in HTTPS - InsiteFX - 12-01-2020

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>