ssl no muestra en primera visita en el sitio web de codeigniter

Tengo ssl instalado en mi sitio web codeigniter que está en vivo y también he habilitado la opción https forzadas, mi host es hostinger, SSL issuer: Encrypt Authority X3.

el problema aquí es cuando el usuario visita por primera vez el sitio web su visualización sin SSL "no seguro", entonces si va a otra página su mostrando SSL y luego si va a la página de nuevo el SSL está presente, el problema está en la primera visita utilizando el buscador del navegador, cada vez que utiliza la barra de búsqueda del navegador que esto sucede, cualquier dispositivo y navegador es así.

La URL en vivo está abajo es mi config.php:

php
defined('BASEPATH') OR exit('No direct script access allowed');

$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
$config['url_suffix'] = '';
$config['language'] = 'english';
$config['charset'] = 'UTF-8';
$config['enable_hooks'] = FALSE;
$config['subclass_prefix'] = 'MY_';
$config['composer_autoload'] = FALSE;
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
$config['allow_get_array'] = TRUE;
$config['log_threshold'] = 0;
$config['log_path'] = '';
$config['log_file_extension'] = '';
$config['log_file_permissions'] = 0644;
$config['log_date_format'] = 'Y-m-d H:i:s';
$config['error_views_path'] = '';
$config['cache_path'] = '';
$config['cache_query_string'] = FALSE;
$config['encryption_key'] = '';
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['cookie_prefix']    = '';
$config['cookie_domain']    = '';
$config['cookie_path']      = '/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;
$config['standardize_newlines'] = FALSE;
$config['global_xss_filtering'] = FALSE;
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
$config['compress_output'] = FALSE;
$config['time_reference'] = 'local';
$config['rewrite_short_tags'] = FALSE;
$config['proxy_ips'] = '';

Este es mi código de acceso:

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

puede alguien por favor decirme qué podría estar mal aquí, gracias por adelantado

Pregunta hecha hace 3 años, 5 meses, 0 días - Por codemaster89


3 Respuestas:

  • Establecer la redirección en .htaccess

    RewriteCond %{HTTPS} off
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    Respondida el Dec 16, 2020 a las 12:40 - por codecrusader

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando con SSL en CodeIgniter puede estar relacionado con la configuración de tu archivo config.php y con la forma en que estás redirigiendo las solicitudes a index.php.

    Aquí hay algunas sugerencias para solucionar el problema:

    • En el archivo config.php, asegúrate de que la URL base esté configurada correctamente con el prefijo https://. Puedes hacerlo de la siguiente manera:
    php
    $config['base_url'] = 'https://tudominio.com';
    

    • Habilita la configuración de cookiesecure en tu archivo config.php para que las cookies se establezcan correctamente para SSL. Debes cambiar la siguiente línea a TRUE:
    php
    $config['cookiesecure'] = TRUE;
    

    • Revisa la configuración de tu redirección en el archivo .htaccess para asegurarte de que esté redirigiendo todas las solicitudes a index.php de la manera correcta. Puedes probar con la siguiente configuración:
    apache
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTPHOST}%{REQUESTURI} [L,R=301]

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

    Estas son algunas posibles soluciones que puedes probar para corregir el problema de visualización sin SSL en la primera visita al sitio web de CodeIgniter. Recuerda siempre hacer una copia de seguridad de tus archivos antes de realizar cambios en la configuración. Si el problema persiste, te recomendaría contactar con el soporte técnico de tu proveedor de hosting para obtener asistencia adicional.

    Respondida el Dec 17, 2020 a las 12:41 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Posibles problemas y soluciones:

    1. Certificado SSL no reconocido

    Asegúrate de que el certificado SSL esté correctamente instalado y configurado en tu host. Verifica que el certificado cubra todos los dominios y subdominios necesarios.

    2. Redirección HTTP a HTTPS no forzada

    En tu archivo config.php de CodeIgniter, configura $config['ssl_forced'] en TRUE. Esto forzará que todas las solicitudes HTTP se redirijan a HTTPS.

    3. Archivos estáticos servidos a través de HTTP

    Verifica que todos los archivos estáticos (CSS, JavaScript, imágenes) se sirvan a través de HTTPS. Esto se puede lograr utilizando funciones de ayuda como base_url() en CodeIgniter.

    4. Caché del navegador

    Borra la caché del navegador y vuelve a cargar la página web. Esto podría resolver problemas causados por una versión anterior de la página web almacenada en caché.

    5. Problemas de DNS

    Verifica que los registros DNS estén configurados correctamente para tu dominio. Esto incluye registros A, registros CNAME y registros MX.

    6. Problemas con el servidor web

    Ponte en contacto con tu proveedor de alojamiento web (Hostinger) para descartar cualquier problema con la configuración del servidor web.

    7. Código de acceso htaccess

    Verifica que el código de acceso htaccess se haya implementado correctamente y que no contenga errores de sintaxis.

    Código de acceso htaccess revisado:

    htaccess
    RewriteEngine On
    RewriteCond %{HTTPS} !^https:// [NC]
    RewriteRule ^(.)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    Nota: Asegúrate de reemplazar %{HTTP_HOST} con el nombre de dominio real de tu sitio web.

    Configuración adicional:

    En tu archivo config.php de CodeIgniter, también puedes considerar configurar $config['base_url'] con el protocolo https://. Esto garantizará que todas las URL generadas por CodeIgniter usen HTTPS.

    Si has intentado todas estas soluciones y el problema persiste, te recomiendo que contactes al soporte técnico de CodeIgniter o Hostinger para obtener asistencia adicional.

    Respondida el Dec 17, 2020 a las 12:50 - por Gemini

    Votos positivos: 0 | Votos negativos: 0