karim harazin
Tengo un sitio web trabajando en ello. cuando abro cualquier página con el protocolo http://, todo se carga correctamente, pero cuando intento cargar la página con el protocolo https, la página se carga pero sin el archivo css y javascript.
La consola muestra los siguientes errores.
Contenido mixto: la página en ‘https://www.ejemplo.com/index.php?main_page=login‘ se cargó a través de HTTPS, pero solicitó una hoja de estilo no segura ‘http://www.ejemplo.com/sitio_mapa.html‘. Esta solicitud ha sido bloqueada; el contenido debe servirse a través de HTTPS.
Supuse que el problema es que el navegador no puede cargar ningún archivo css cuando lo solicita el protocolo https.
El problema es con el archivo htaccess, porque cuando lo eliminé, los archivos css se cargaron correctamente.
La página y los archivos css cargados en el navegador con https en sus URL como este
<link rel="stylesheet" type="text/css" href="https://www.example.com/includes/templates/classic/css/style1.css">
<link rel="stylesheet" type="text/css" href="https://www.example.com/includes/templates/classic/css/style2.css">
cuando el navegador intenta cargar los archivos css, se redirige a
http://www.example.com/site_map.html
¿Cómo puedo hacer que htaccess permita que https abra los archivos css y js en una carpeta específica?
Gracias
ACTUALIZAR
El contenido del archivo htaccess
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule (.*) http://www.example.com/$1
###############################################################################
# Common directives
###############################################################################
# NOTE: Replace /shop/ with the relative web path of your catalog in the "Rewrite Base" line below:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.example.com/ [R=301,L]
#RewriteBase /
###############################################################################
# Start Ultimate SEO URLs
###############################################################################
# Original (unchanged) URL formats
RewriteRule ^(.*)-p-([0-9]+)(.*)$ index\.php?main_page=product_info&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-c-(.*)-p(.*)\.html$ /index.php?main_page=$4&cPath=$2&sort=$5&page=$3
RewriteRule ^(.*)-c-([0-9_]+)(.*)$ index\.php?main_page=index&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-ez-(.*).html$ index.php?main_page=page&id=$2 [L]
# All other pages
# Don't rewrite real files or directories
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index\.php?main_page=$1&%{QUERY_STRING} [L]
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule index.html$ index.php [QSA]
# 480 weeks
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>
# 2 DAYS
<FilesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>
# 2 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
RewriteEngine on
RewriteBase /
ErrorDocument 404 /index.php
RewriteRule index.html$ index.php [QSA]
joews
Si puede servir CSS, etc. a través de HTTPS, la mejor solución es usar //
como el esquema para URL de activos.
Eso significa “usar el mismo esquema (a veces llamado protocolo) como el documento principal”, es decir, utilizar https
si la pagina usa https
. Por ejemplo:
<link rel="stylesheet" href="https://mysite.com/styles.css">
<script src="https://mysite.com/app.js"></script>
-
Te perdiste el dominio de la URL
– andale
25 de mayo de 2015 a las 9:35
-
“es decir, use https si la página usa https” me confundió por un segundo, pero sus ejemplos funcionaron: simplemente reemplazó todo http:// por //
– usuario8139445
18 de diciembre de 2018 a las 0:48
-
// hizo que no se encontrara el archivo.
– Tony Edwards
9 sep 2020 a las 14:30
Aquí está tu problema:
RewriteCond %{SERVER_PORT} ^443$
RewriteRule (.*) http://www.example.com/$1
No permite solicitudes SSL (el número de puerto 443 se usa para solicitudes HTTPS). Intenta eliminar estas líneas.
Ioannis Loukeris
Lo más probable es que dentro de su código html tenga algo como
<link href="http://someSite.com/css/someStyle.css" rel="stylesheet" type="text/css" />
deberías cambiar esto a
<link href="https://someSite.com/css/someStyle.css" rel="stylesheet" type="text/css" />
también la página a la que te refieres es .html no css, pero supongo que es un error tipográfico …
-
Cuando la página se carga con https y los archivos css, la URL también usa https. para cuando el navegador lo abrió, la respuesta del servidor con la página de redirección que es ‘ejemplo.com/sitio_mapa.html‘ en mi caso
– Karim Harazin
25 mayo 2015 a las 9:30
-
tenía un http en mi archivo css. cambiar a htpps también funcionó. ¡Gracias!
– Jona
10 mayo 2016 a las 21:11
-
@loannis Loukeris, ‘http’ y ‘hhtps’ deben ser dinámicos. El usuario puede navegar usando cualquiera. Gracias
– abu-abu
17 de junio de 2016 a las 9:25
-
Justo ese era el problema. También hace que la página se cargue más rápido. Eso me ayuda a matar dos pájaros de un tiro.
– Augusto
25 mayo 2019 a las 20:51
-
Las mejores prácticas establecen que nunca debe poner el dominio en su código.
– Tony Edwards
9 sep 2020 a las 14:25
Soumya Rajiv
Experimentó un error similar en Drupal 8.0.1
Error – Contenido mixto: la página en ” se cargó a través de HTTPS, pero solicitó una hoja de estilo no segura ”. Esta solicitud ha sido bloqueada; el contenido debe ser servido a través de HTTPS.
Solución – Abra el archivo .htaccess y agregue la siguiente línea
El encabezado siempre establece Content-Security-Policy “upgrade-insecure-requests”;
Usé el complemento de cloudflare como se describe en su guía aquí.
robinlolo
Es posible que también deba revisar su
Dirección de WordPress (URL) y Dirección del sitio (URL) en Configuración general y asegúrese de que sus URL estén https://www.tudominio.com
¿Puedes publicar el contenido de
.htaccess
?– joews
25 mayo 2015 a las 9:40
actualicé la pregunta
– Karim Harazin
25 de mayo de 2015 a las 9:46