Intereting Posts
Автоматически загружать файл config.php для всех страниц перед чем-либо еще Использование PHP Gettext Extension vs PHP-массивов на многоязычных сайтах? PHP-почта не появляется в Gmail, но появляется в Hotmail и других сторонних / ISP-аккаунтах Как использовать / dev / urandom с PHP для получения случайных чисел CS Условное обслуживание логотипа на удаленном сайте Ошибка «Без базы данных» даже после того, как выбран db Требовать несколько файлов Ajax POST для PHP и получения ответа, jQuery переменная сеанса увеличивается только один раз Разделяйте кнопки отправки в формах, которые сообщают форму «действие» для публикации в разные файлы? Проблема загрузки удаленного изображения TCPDF Получите подмножество случайных значений из массива php WAMPSERVER – обновлять версию PHP только с 5.4.3 до 5.5.4 PHP / MySQL: выберите местоположения, близкие к заданному местоположению, из базы данных как защитить клиентские коды

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

У меня есть веб-сайт, который работает над этим. когда я открываю любую страницу с протоколом 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="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"> 

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

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

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

благодаря

ОБНОВЛЕНИЕ Содержимое файла 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} ^[AZ]{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] 

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

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

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

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

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

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

Скорее всего, внутри вашего 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, но я думаю, что это опечатка …

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