প্রক্সিড এসএসএল সহ মোড_আরাইটের সাহায্যে HTTPS জোর করুন Force


9

আমি একটি সার্ভার পেয়েছি যে কোনও এসএসএলকে লোড ব্যালেন্সার সমাপ্ত করে কিছু ট্র্যাফিক পাচ্ছে - এই ক্ষেত্রে এটি একটি পোর্ট ৮০ এর উপরে এইচটিটিপি হিসাবে আসে http_x_forwarded_proto= "https"

আমি এমন একটি মোড_আরাইট রুল চাই যা কেবলমাত্র HTTPS ট্র্যাফিক বা ফরওয়ার্ড এইচটিটিপিএস ট্র্যাফিকের অনুমতি দেয়।

আমার এ পর্যন্ত:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:http_x_forwarded_proto} != https
RewriteCond %{HTTP:http_x_forwarded_proto} != HTTPS
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

কিন্তু আমি পাচ্ছি

রিউরাইটকন্ড: খারাপ পতাকা ডিলিমিটার

ত্রুটি.

এই কাজটি করার জন্য আমার কী সংশোধন করা দরকার এবং এটি কি সেরা পন্থা?

উত্তর:


16

সমস্যাটি "! =" এর পরে শ্বেতস্থান ছিল:

কাজের সংস্করণ:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

কৌশলী...


আমি নিশ্চিত নই যে এসএসএল যদি অফলোড হয় তবে এইচটিটিপিএস ভেরিয়েবল সেট হয়ে যাবে। যাইহোক আমার পরিস্থিতিতে এটি প্রথম পরীক্ষা ছাড়াই ভাল কাজ করেছে।
উর্টেল

1

আপনার যদি লোড ব্যালেন্সার সর্বদা সার্ভারের সাথে যোগাযোগ করার সময় এসএসএল ব্যবহার করে থাকে তবে সর্বদা সত্য হতে হবে বলে আপনাকে প্রথম চেকটি বাদ দিতে হবে। (আপনি যদি লোড ব্যালেন্সারে এসএসএল অফলোড করে থাকেন তবে প্রথম লাইনটি সর্বদা সত্য হয় যদি না কেউ এসএসএল ব্যবহার করে আপনার সার্ভারকে সরাসরি আঘাত করতে পরিচালিত করে তবে এটি মিথ্যা হবে এবং যেহেতু X-Forwarded-Protoঅনুপস্থিত হবে সেহেতু পুনর্নির্দেশের চেষ্টা করবেন না))

আমরা যে কোডটি ব্যবহার করছি সেহেতু আমরা সর্বদা ইএলবি এবং ওয়েবসভারের মধ্যে এসএসএলের মাধ্যমে যোগাযোগ করি:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.