Я знаю, что есть повторяющиеся вопросы Вот и Вот но это не решило моих проблем.
Когда localhost набирается в адресной строке браузера, он правильно перенаправляется на https://localhost
, но все вызовы в моем коде для загрузки файлов с http
не перенаправляются и не переписываются на https
. Например:
<link rel="stylesheet" type="text/css" href="http://static/css/colwidth.min.css">
я пытался Redirect permanent / https://localhost/
в файлах конфигурации Apache в VirtualHost
разделы, и я также пробовал RewriteRule
с участием .htaccess
В Firefox
ошибка, которую я получаю:
Заблокирована загрузка смешанного активного контента »
http://static/css/colwidth.min.css
”
Буду признателен за помощь в понимании того, как это сделать с обе Конфигурация Apache и .htaccess
(Я знаю .htaccess
не является предпочтительным методом, но я все же хотел бы понять, почему он не работает)
http:
<VirtualHost *:80>
ServerAdmin me@localhost
DocumentRoot "D:/Website/path/to/root"
ServerName localhost
Redirect permanent / https://localhost/
<Directory "D:/Website/path/to/root">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require ip 127.0.0.1
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin me@localhost
DocumentRoot "D:/Website/path/to/root"
ServerName static
Redirect permanent / https://static/
<Directory "D:/Website/path/to/root">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require ip 127.0.0.1
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "D:/Website/path/to/root"
ServerName localhost:443
ServerAdmin me@localhost
ErrorLog "c:/xampp/apache/logs/error.log"
TransferLog "c:/xampp/apache/logs/access.log"
<Directory "D:/Website/path/to/root">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require ip 127.0.0.1
</Directory>
SSLEngine on
SSLCertificateFile "c:/xampp/apache/bin/wtr.cert"
SSLCertificateKeyFile "c:/xampp/apache/bin/wtr.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "c:/xampp/apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
CustomLog "c:/xampp/apache/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
https:
<VirtualHost *:443>
DocumentRoot "D:/Website/path/to/root"
ServerName static:443
ServerAdmin me@localhost
ErrorLog "c:/xampp/apache/logs/error.log"
TransferLog "c:/xampp/apache/logs/access.log"
<Directory "D:/Website/path/to/root">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require ip 127.0.0.1
</Directory>
SSLEngine on
SSLCertificateFile "c:/xampp/apache/bin/static.cert"
SSLCertificateKeyFile "c:/xampp/apache/bin/static.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "c:/xampp/apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
CustomLog "c:/xampp/apache/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
.htaccess
RewriteEngine On
# For SSL
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{SERVER_NAME}/$1 [L,R=301]
# I also tried:
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
#Rules for Versioned Static Files
RewriteRule ^(js|js-common|css|css-common|img|img-common)/(.+)\.([0-9])+\.(js|css|php|jpg|gif|png)(.*)$ $1/$2.$4$5 [L]
#rename invalid file and directory requests
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?redirectroot=true
В Ошибка Firefox Я получаю:
В этом проблема ... браузер вызывает эту ошибку перед запрос даже достигает вашего сервера, поэтому любая попытка перенаправить на сервер будет слишком поздно.
Если сама страница перенаправлена на https://...
тогда все упомянутые ресурсы на этой странице также должны использовать https://...
также, иначе вы получите предупреждение о "смешанном содержании", как указано выше. Это базовая система безопасности браузера, позволяющая предотвратить любые безопасный утечка контента через небезопасный (HTTP) соединение.
Вместо использования абсолютных URL-адресов (которые включают схема) в HTML вы можете вместо этого использовать относительные URL-адреса протокола, например:
<link rel="stylesheet" type="text/css" href="//static/css/colwidth.min.css">