2015-07-08 3 views
0

Я использую Laravel 4.2, и я использую гибкий SSL из Cloudflare.Laravel Request :: secure() function return false

У меня есть этот код на filters.php, например:

App::before(function($request) 
{ 
    if (Request::secure()) 
     return 'False'; 
}); 

и когда я пытаюсь запустить это на моем защищенном сервере, я получаю False ответ. Я сделал что-то не так?

+0

Проверьте это: http://laravel.io/forum/06-22-2014-requestsecure-return-false-no-ssl-but-ssl-certificate-is-applied – Needpoule

ответ

0

Причина, по которой функция secure() возвращает false, заключается в том, что на сайте действительно нет SSL-сертификата, CloudFlare имеет. поэтому, когда клиенты подключаются к сайту, на самом деле соединение с CloudFlare (SSL) и CloudFlare подключается к сайту (не SSL). Итак, в заключение, запрос между CloudFlare и сайтом не защищен.

0

Я сделал что-то неправильно здесь?

Да. Вы возвращаете строку, а не логическую. Попробуйте это вместо:

App::before(function($request) 
{ 
    if (Request::secure()) 
     return false; 
}); 

Я не уверен, что вы пытаетесь достичь, хотя? Если вы хотите обеспечить доступ через SSL, перенаправите его на версию HTTPS. Возврат false просто даст пользователю пустую страницу.

+0

Это было не мое намерение вообще , То, что я пытался сказать, даже когда у меня есть 'https', он возвращает false. –