Подтвердить что ты не робот

Страница смешанного контента: запрошена небезопасная ошибка стилей

У меня есть сайт, на котором он работает. когда я открываю любую страницу с протоколом http://, каждая вещь загружается правильно, но когда я пытаюсь загрузить страницу с протоколом https, страница загружается, но без css и javascript файла.
На консоли отображаются следующие ошибки.

Смешанный контент: страница в 'https://www.example.com/index.php?main_page=login' загружен через HTTPS, но запросил небезопасную таблицу стилей 'http://www.example.com/site_map.html'. Этот запрос был заблокирован; содержимое должно быть передано через HTTPS.

Я понял, что проблема заключается в том, что браузер не может загружать файлы css при запросе по протоколу https.

Проблема заключается в файле htaccess, потому что когда я его удаляю, файлы css загружаются правильно.

Файлы страниц и css загружаются в браузер с помощью https в своих URL-адресах, таких как

<link rel="stylesheet" type="text/css" href="#" onclick="location.href='https://www.example.com/includes/templates/classic/css/style1.css'; return false;">
<link rel="stylesheet" type="text/css" href="#" onclick="location.href='https://www.example.com/includes/templates/classic/css/style2.css'; return false;">

когда браузер пытается загрузить файлы css, он перенаправляется на

http://www.example.com/site_map.html  

Как я могу заставить htaccess разрешить https открывать файлы css и js в определенной папке?

Спасибо

UPDATE Содержимое файла 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]
4b9b3361

Ответ 1

Вот ваша проблема:

RewriteCond %{SERVER_PORT} ^443$
RewriteRule (.*) http://www.example.com/$1 

Вы не разрешаете запросы SSL (для запросов HTTPS используется номер порта 443). Попробуйте удалить эти строки.

Ответ 2

Если вы можете обслуживать CSS и т.д. через HTTPS, лучшим решением является использовать // в качестве схемы для URL-адресов активов.

Это означает "использовать ту же схему (иногда называемую протоколом) как родительский документ", т.е. использовать https, если на странице используется https. Например:

<link rel="stylesheet" href="//mysite.com/styles.css">
<script src="//mysite.com/app.js"></script>

Ответ 3

Скорее всего, внутри вашего html-кода у вас есть что-то вроде

<link href="http://someSite.com/css/someStyle.css" rel="stylesheet" type="text/css" />

вы должны изменить это на

<link href="https://someSite.com/css/someStyle.css" rel="stylesheet" type="text/css" />

также вы ссылаетесь на страницу .html not css, но я думаю, что это опечатка...

Ответ 4

Я использовал плагин cloudflare, как описано в их руководстве здесь.