2016-06-29 3 views
2

У меня есть приложение Laravel 5.2, работающее на герою с пользовательским доменом, обработанным Cloudflare. Пользовательский домен использует CNAME для указания его на домен heroku. Я включил full ssl на Cloudflare, чтобы разрешить https. Сам URL-адрес heroku имеет ssl, поэтому это не проблема.Laravel с пользовательским доменом https на heroku, не генерирующим маршруты https

Когда маршрут генерируется (например, через что-то вроде он включал весь пользовательский домен, но с http, а не https Это часто приводит к консоли браузера предупреждение следующим образом:.

Mixed Содержание: страница в «https://example.com» была загружена в течение защищенного соединения, но содержит форму, которая предназначается для небезопасной конечной точки «http://example.com/endpoint». Эта конечная точка должна быть сделана доступной через защищенное соединение.

Любые идеи, почему генератор маршрута Laravel не использует https?

ответ

0

в файле .env, убедитесь, что ваш APP_URL показывает на протокол HTTPS

+0

Это не работает. У меня создалось впечатление, что значение конфигурации «app.url» использовалось только для команд artisan. Идеальное решение - просто создать маршруты без части домена. Например. '/ endpoint', а не' http: // example.com/ endpoint' – harryg

+1

А, посмотрите на следующую ссылку, там есть ответ, включающий 'URL :: forceSchema ('https');'. Вы можете поместить это в свой «AppServiceProvider». http://laravel.io/forum/12-26-2014-routing-with-https – swatkins

0

Вы можете сказать маршруту служить https:

Route::get('signin', ['uses' => '[email protected]', 'https']); 

Убедитесь, что вы не какой-либо актив жёстко прописанные.

+0

Это не было бы хорошим решением, так как 1) мне пришлось бы вручную обновлять каждый маршрут в файле маршрутов. 2) Моя среда для разработчиков не является https, поэтому это может вызвать проблемы при разработке. Приложение должно быть в состоянии определить, включен ли ssl или нет. Я чувствую, что эта проблема связана с тем, как я использую cloudflare ssl с героуку. Но это все еще https в конце. – harryg

+0

Используйте вместо этого 'env ('https')', затем в '.env' добавить' HTTPS = https' или 'HTTPS = http'. – user2094178

Смежные вопросы