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 aindex.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 prefijohttps://
. 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 aTRUE
:
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 aindex.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 - En el archivo
-
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']
enTRUE
. 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 protocolohttps://
. 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