Amir Alsaeed نشر 18 مارس 2021 أرسل تقرير نشر 18 مارس 2021 أقوم بتحديث نسخة لارافيل قديمة، ولدي الكود التالي لتحويل الطلبات إلى HTTPS: App::before(function($request) { if( ! Request::secure()) { return Redirect::secure(Request::path()); } }); ما الإجراء الذي يمكنني إضافته لتحويل الطلبات من http إلى https في لارافيل؟ اقتباس
0 Sam Ahw نشر 18 مارس 2021 أرسل تقرير نشر 18 مارس 2021 يمكن استخدام Request::isSecure الذي تقدمه لارافيل وإنشاء وسيط middleware بهذه الطريقة: namespace MyApp\Http\Middleware; use Closure; use Illuminate\Support\Facades\App; class HttpsProtocol { public function handle($request, Closure $next) { if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); } return $next($request); } } وبذلك يقوم الصف HttpsProtocol بتحويل جميع الطلبات إلى Https والتي قادمة من http وأيضاً إذا كانت البيئة الحالية هي بيئة النشر، لتجنب الأخطاء بين التطوير والنشر للمشروع. ولتطبيقه نقوم أيضاً بإضافته ضمن Kernel.php: protected $middleware = [ ...... 'MyApp\Http\Middleware\HttpsProtocol' ..... ]; ووفقاً للتوثيق الرسمي، عند استخدام CDN كـ Cloudflare على سبيل المثال، سيتم تمرير X-Forwarded-Protocol إلى خادم الويب عن طريق Http وعندها سيتم الدخول في حلقة لانهائية وستبقى الصفحة تقوم بالتحديث بدون عرض محتوياتها، لذلك يجب أيضاً إضافة الكود التالي إلى الوسيط السابق: $request->setTrustedProxies( [ $request->getClientIp() ] ); لتأمين الوثوقية في الترويسة المرسلة من قبل Cloudflare وعدم الدخول في حلقة لانهائية. أما في حال وجود بيئة واحدة فقط مثلاً production ولا يتم تطوير المشروع على بيئات مختلفة، فيمكن التحويل إلى https بتعديل ملف htaccess كالتالي: RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] اقتباس
السؤال
Amir Alsaeed
أقوم بتحديث نسخة لارافيل قديمة، ولدي الكود التالي لتحويل الطلبات إلى HTTPS:
App::before(function($request) { if( ! Request::secure()) { return Redirect::secure(Request::path()); } });
ما الإجراء الذي يمكنني إضافته لتحويل الطلبات من http إلى https في لارافيل؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.