Блокировка при скачивании файла

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Tima
Сообщения: 1
Зарегистрирован: 2021.03.04, 11:08

Блокировка при скачивании файла

Сообщение Tima »

Здравствуйте! Столкнулся с проблемой, Chrome блокирует загрузку файла по ссылке. Ссылка ведет на сайт написанный на Yii1. Ссылка размещается на другом сайте защищенном https. Сайт на Yii работает тоже на https. Когда нажимаем по ссылке https://mysite.ru/docs/records/sip.mangosip.ru.mp3 загрузка файла блокируется, в консоли браузера такая ошибка:
Mixed Content: The site at 'https://planfix.ru/' was loaded over a secure connection, but the file at 'https://mysite.ru/home/getrecords?file= ... sip.ru.mp3' was redirected through an insecure connection. This file should be served over HTTPS. This download has been blocked. See https://blog.chromium.org/2020/02/prote ... ecure.html for more details.
В htaccess стоит редирект:
RewriteRule ^docs\/records\/(.*)$ https://%{HTTP_HOST}\/home\/getrecords?file=$1 [L,QSA]
Это сделано для того, чтобы файл мог скачать только залогиненый пользователь.
Вот метод на который ведет редирект:

Код: Выделить всё

public function actionGetRecords(){
	if(!Yii::app()->user->isGuest && !empty($_GET['file']) && file_exists(Yii::app()->basePath ."/../docs/records/".$_GET['file'])) {
		Yii::app()->request->sendFile(basename(Yii::app()->basePath ."/../docs/records/".$_GET['file']),file_get_contents(Yii::app()->basePath ."/../docs/records/".$_GET['file']));
	} else {
		throw new CHttpException(404);
	}
}
Получается, что Yii генерирует не защищенную ссылку с http и из-за смешанного контента браузер блокирует загрузку. Может кто-то сталкивался с подобной проблемой, где в Yii формируется эта ссылка и как ее поменять на https?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Блокировка при скачивании файла

Сообщение samdark »

Тут не ссылка, тут один из редиректов через HTTP. Надо найти, что за страница.
Ответить