Welcome Guest, Not a member yet? Register   Sign In
CodeIgniter 3 routes don't work in HTTPS
#1

(This post was last modified: 11-30-2020, 07:54 AM by alfonsosach.)

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

(This post was last modified: 11-30-2020, 07:56 AM by sammyskills.)

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]
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

(This post was last modified: 11-30-2020, 12:21 PM by InsiteFX.)

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




Theme © iAndrew 2016 - Forum software by © MyBB