J'ai un site web qui travaille dessus. Lorsque j'ouvre une page avec le protocole http: //, tout est chargé correctement, mais lorsque j'essaie de charger la page avec le protocole https, la page est chargée mais sans fichier css ni javascript.
La console affiche les erreurs suivantes.
Contenu mixte: La page " https://www.example.com/index.php?main_page=login " a été chargée via HTTPS, mais a demandé une feuille de style non sécurisée " http://www.example.com/site_map.html '. Cette demande a été bloquée. le contenu doit être servi sur HTTPS.
J'ai pensé que le problème est que le navigateur ne peut charger aucun fichier CSS lorsqu'il l'a demandé par le protocole https.
Le problème vient du fichier htaccess, car lorsque je l’ai supprimé, les fichiers css se sont chargés correctement.
Les fichiers page et css chargés dans le navigateur avec https dans leurs URL, comme ceci
<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">
lorsque le navigateur essaie de charger les fichiers css, il est redirigé vers
http://www.example.com/site_map.html
Comment puis-je faire en sorte que htaccess autorise https à ouvrir les fichiers css et js dans un dossier spécifique?
Merci
[~ # ~] met à jour [~ # ~] Le contenu du fichier 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]
Voici votre problème:
RewriteCond %{SERVER_PORT} ^443$
RewriteRule (.*) http://www.example.com/$1
Vous n'autorisez pas les demandes SSL (le numéro de port 443 est utilisé pour les demandes HTTPS). Essayez de supprimer ces lignes.
Si vous êtes capable de servir CSS, etc. via HTTPS, la meilleure solution consiste à tilisez //
en tant que schéma pour les URL d'actif.
Cela signifie "utiliser le même schéma ((parfois appelé protocole )) que le document parent", c'est-à-dire utiliser https
si la page utilise https
. Par exemple:
<link rel="stylesheet" href="//mysite.com/styles.css">
<script src="//mysite.com/app.js"></script>
Très probablement, dans votre code html, vous avez quelque chose comme:
<link href="http://someSite.com/css/someStyle.css" rel="stylesheet" type="text/css" />
vous devriez changer cela en
<link href="https://someSite.com/css/someStyle.css" rel="stylesheet" type="text/css" />
la page dont vous parlez est aussi .html pas css, mais je suppose que c'est une faute de frappe ...
J'ai utilisé le plugin cloudflare comme décrit dans leur guide ici .