2016-03-30 32 views
7

Laravel üzerinde yapılan bir uygulama var 5.2. HTTP'de iyi çalışıyordu.CloudFlare'in arkasındaki HTTP'den HTTPS'ye geçiş

Tam URL oluşturmak yerine laravel belgelerinde here, asset yöntem otomatik olarak talep protokolü algılar ve buna göre bir URL üretir göre

<link rel="stylesheet" type="text/css" href="{{ asset('/css/bootstrap.min.css') }}"> 

gibi nispi bir kişinin kullanarak asset işlevi kullanılır.

Şimdi uygulama HTTPS URL'ler için secure_asset kullanabilirsiniz HTTPS'de çalışmıyor, ama sonra HTTP ve localhost üzerinde yayını durdurulur.

ben eksik bir şey biliyorum ve HTTPS kullanılarak sadece HTTP'den göç etmek çok zor olamaz laravel

PS - CloudflareHTTPS isteklerini sunmak için kullanılıyor. bağımlılık enjeksiyon yoluyla cari HTTP isteğinin bir örneğini elde etmek İsteği Erişme

cevap

6

Şimdiye kadar verilen tüm cevaplar doğru ama hiçbiri problemimi çözmedi.

temel sorun bile talep nedeniyle CloudFlare HTTPS benim uygulama CloudFlare

laravel HTTP kalan HTTP başlığı yani $_SERVER['REQUEST_SCHEME'] denetleyerek olarak güvenli veya güvensiz bir istek algılar arkasında idi.

CloudFlare herhangi bir değişiklik yapmadan başarıyla HTTPS URL oluşturmak başardı

this makalesinde takip etmek ve bu bazı değişiklikler yaparak bir istek güvenli algılamak için kontrol olmalı, veya aynı yani $_SERVER['HTTP_X_FORWARDED_PROTO'] için farklı bir başlığı koyar önceki uygulama koduna

+0

Mod_cloudflare'i (eğer apache kullanıyorsanız) etkinleştirmeniz, herhangi bir kod yazmanıza gerek kalmadan sorunun çözüleceğine inanıyorum. – brazorf

+0

Bu, cloudflare için çözülmüş olurdu ama bu çözüm, her türlü yük dengeleyiciler için evrenseldir – Cybersupernova

+0

Üzgünüz, sorunun başlığında belirtildiği gibi, cloudflare üzerinde durulduğunu düşündüm. – brazorf

1

, sen yapılandırmaları yapabildin içinden elle ayarlama https://laravel.com/docs/5.2/requests#request-information

yerine denetleyici yapıcı veya yöntem üzerinde Illuminate\Http\Request sınıfı tip-ipucu olmalıdır İstek :: güvenli() kullanarak, istek HTTPS

+1

Biliyorum ya bunu yapabilirim ya da direkt olarak '$ _SERVER ['REQUEST_SCHEME']' talebinin güvenli olup olmadığını saptamak için kullanabilirim ama doğru url'yi üretmek için varlık fonksiyonunun nasıl yardımcı olacağını göremiyorum – Cybersupernova

1

üzerinden yapıldıysa, laravel source uyarınca, http/https kullanmak için açıkça ipucu vermediyseniz, varlık isteğine bağlı olarak protokol oluşturur. Yani, burada hiçbir şeyi değiştirmemelisiniz. Güvenli bağlantı yoluyla istendiğinde, https'ye geçilir.

+1

Bildiğim kadarıyla açık bir şekilde değiştirmedim ama bana nereden bulabileceğimi söyler misin – Cybersupernova