Назад | Перейти на главную страницу

Предотвращение предупреждений о смешанном содержании путем перенаправления ВСЕХ запросов на https на apache

У меня есть сайт wordpress, который теперь должен полностью обслуживаться через https. Я получаю предупреждения о смешанном содержимом на большинстве страниц, так как довольно много содержимого все еще имеет http-адреса в базе данных, но все они доступны через https.

У меня в моем .htaccess файл:

# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

У меня ограниченный опыт работы с Apache, поэтому мой вопрос: почему указанное выше перенаправление не ВСЕ запросы на https, даже на встроенный контент?

почему вышеупомянутое не перенаправляет ВСЕ запросы на https, даже встроенный контент?

Да, но появляется предупреждение браузера перед запрос действительно сделан. т.е. Прежде чем ваш сервер сможет перенаправить. Это необходимо для предотвращения распространения информации утечка через HTTP и MITM атаки.

Когда запрос выполняется через HTTPS, связь между клиентом и сервером шифруется. URL-путь скрыт, и любая попытка слежения за этим сетевым трафиком предотвращается, потому что он зашифрован. Однако, если эта страница HTTPS делает запрос через HTTP (для любого внешнего ресурса, CSS, JS, изображения, другого сайта, запроса AJAX и т. Д.), Тогда URL-путь виден, и вы потенциально отправляете файлы cookie, информацию о сеансе и т. Д. Через незашифрованное соединение, которое может просматривать и изменять третье лицо.

Вам необходимо обновить URL-адреса HTTP в вашей базе данных на HTTPS, чтобы вы всегда ссылались только на HTTPS в своем клиентском HTML.

RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Это 302-е (временное) перенаправление. Как только у вас все заработает, вы должны изменить его на 301 (постоянный), изменив R флаг R=301.