আমি আমার সাইটের সমস্ত অনিরাপদ এইচটিটিপি অনুরোধকে (যেমন http://www.example.com
) এইচটিটিপিএস ( https://www.example.com
) এ পুনঃনির্দেশ করার চেষ্টা করছি । আমি পিএইচপি বিটিডব্লু ব্যবহার করছি। আমি কি এটি .htaccess এ করতে পারি?
http://
আমি আমার সাইটের সমস্ত অনিরাপদ এইচটিটিপি অনুরোধকে (যেমন http://www.example.com
) এইচটিটিপিএস ( https://www.example.com
) এ পুনঃনির্দেশ করার চেষ্টা করছি । আমি পিএইচপি বিটিডব্লু ব্যবহার করছি। আমি কি এটি .htaccess এ করতে পারি?
http://
উত্তর:
আপডেট: যদিও এই উত্তর কয়েক বছর আগে গৃহীত হয়েছে, তবে নোট করুন যে অ্যাপাচি ডকুমেন্টেশন দ্বারা এর পদ্ধতির বিরুদ্ধে এখন সুপারিশ করা হয়েছে । Redirect
পরিবর্তে ব্যবহার করুন । এই উত্তর দেখুন ।
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
http://server/foo?email=someone%40example.com
পুনর্নির্দেশ করে https://server/foo?email=someone%2540example.com
ইউআরএল-কোটেশন দু'বার পাওয়া যায় । @ এসএসসি এর উত্তরে পদ্ধতিটি ব্যবহার করার ক্ষেত্রে এই সমস্যা নেই।
In the case of the http-to-https redirection, the use of RewriteRule would be appropriate if you don't have access to the main server configuration file, and are obliged to perform this task in a .htaccess file instead.
এ্যাপাচি ডক্স একটি লেখা ব্যবহারের বিরুদ্ধে সুপারিশ:
http
URL গুলি পুনর্নির্দেশ করতেhttps
, নিম্নলিখিতটি করুন:<VirtualHost *:80> ServerName www.example.com Redirect / https://www.example.com/ </VirtualHost> <VirtualHost *:443> ServerName www.example.com # ... SSL configuration goes here </VirtualHost>
এই স্নিপেটটি মূল সার্ভার কনফিগারেশন ফাইলের মধ্যে যাওয়া উচিত, প্রশ্নে জিজ্ঞাসা করা হয়নি.htaccess
।
প্রশ্নটি জিজ্ঞাসা করা এবং উত্তর দেওয়ার পরেই এই নিবন্ধটি উঠে এসেছে, তবে মনে হয় এটি চলার বর্তমান উপায়।
permanent
কীওয়ার্ডটি ব্যবহার করলে , প্রভাবটি একই (ব্রাউজারটি 301 পুনর্নির্দেশ গ্রহণ করে)। যেমন:Redirect permanent "/" "https://example.com"
আমি 301 পুনর্নির্দেশের সাথে সুপারিশ করব:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
[L]
আমি যখন এই প্রশ্নে বলছিলাম , আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি সমস্ত এইচটিটিপি অনুরোধগুলি তাদের এইচটিটিপিএসের সমতুল্যভাবে অন্ধভাবে ডাইরেক্ট করা উচিত না, কারণ এটি আপনাকে সুরক্ষার ভুল ধারণা তৈরি করতে পারে। পরিবর্তে, আপনার সম্ভবত আপনার এইচটিটিপিএস সাইটের "রুট" আপনার HTTPS সাইটের মূলের দিকে পুনর্নির্দেশ করা উচিত এবং সেখান থেকে কেবল HTTPS- এ লিঙ্ক করা উচিত।
সমস্যাটি হ'ল যদি এইচটিটিপিএস সাইটে কোনও লিঙ্ক বা ফর্ম ক্লায়েন্টকে এইচটিটিপি সাইটে একটি অনুরোধ প্রেরণ করে, পুনঃনির্দেশের আগে এর বিষয়বস্তু দৃশ্যমান হবে।
উদাহরণস্বরূপ, যদি HTTPS- এ আপনার পরিবেশন করা পৃষ্ঠাগুলির মধ্যে একটি ফর্ম থাকে যা <form action="http://example.com/doSomething">
কিছু তথ্য প্রেরণ করে না যা প্রেরণে প্রেরণ করা যায় না, তবে ব্রাউজারটি প্রথমে সম্পূর্ণ অনুরোধটি (সত্তা সহ, যদি এটি একটি পোষ্ট থাকে) HTTP সাইটে প্রেরণ করবে প্রথম। পুনঃনির্দেশটি তাত্ক্ষণিকভাবে ব্রাউজারে প্রেরণ করা হবে এবং যেহেতু বিপুল সংখ্যক ব্যবহারকারী সতর্কতা অক্ষম বা উপেক্ষা করে, সম্ভবত এটি উপেক্ষা করা হবে।
অবশ্যই, লিঙ্কগুলি সরবরাহ করার ভুল যা এইচটিটিপিএস সাইটে হওয়া উচিত তবে এটি এইচটিটিপিএস সাইটের জন্য হওয়া আপনার সমস্যার এইচটিটিপিএস সাইট হিসাবে একই আইপি ঠিকানায় এইচটিটিপি পোর্টে শুনার সাথে সাথেই সমস্যার কারণ হতে পারে। যাইহোক, আমি মনে করি দুটি সাইটকে "আয়না" হিসাবে রাখলে ভুল করার সম্ভাবনা কেবল বেড়ে যায়, কারণ আপনি এই ধারণাটি চালিয়ে যেতে পারেন যে এটি ব্যবহারকারীকে এইচটিটিপিএসে পুনঃনির্দেশ দিয়ে স্বয়ংক্রিয়ভাবে সংশোধন করবে, যদিও প্রায়শই অনেক দেরি হয়ে যায়। ( এই প্রশ্নে একই আলোচনা ছিল । )
আমি জানতে পেরেছি যে ডোমেনে https এবং www এর সবচেয়ে ভাল উপায়
RewriteCond %{HTTPS} off
RewriteCond %{HTTPS_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
http://www.example.com/...
কারণ দুটি শর্ত সুস্পষ্টভাবে AND'd। তাদের পরিবর্তে অর্থাত্ হওয়া উচিত। OR
প্রথম শর্তে পতাকাটি অন্তর্ভুক্ত করুন (এবং রেজেক্সে আক্ষরিক বিন্দুগুলি থেকে বাঁচতে ভুলবেন না)। তবে আপনি যদি এইচএসটিএস প্রয়োগ করছেন তবে আপনি একক পুনর্নির্দেশের মাধ্যমে HTTPS এবং www এ পুনঃনির্দেশ করতে চান না, আপনাকে প্রথমে HTTPS এ পুনঃনির্দেশ করা উচিত ।
এটি এইচটিএমএল পুনর্নির্দেশ পদ্ধতির এটি কার্যকর তবে সবচেয়ে ভাল নয়।
<meta http-equiv="Refresh" content="0;URL=https://www.example.com" />
পিএইচপি পদ্ধতির
<?php
function redirectTohttps() {
if ($_SERVER['HTTPS']!="on") {
$redirect= "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
header("Location:$redirect");
}
}
?>
.htaccess অ্যাপ্রোচ
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
থেকে অনুলিপি করা হয়েছে: www.letuslook.org
.htaccess
যায়? এছাড়াও, সেই লিঙ্কটি মারা গেছে।
আমি HTTP থেকে https এ পুনঃনির্দেশের এই পদ্ধতিটি পছন্দ করি। কারণ প্রতিটি সাইটের জন্য আমার এডিট করার দরকার নেই।
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
আপনার .htaccess ফাইলে নিম্নলিখিত কোড ব্যবহার করা আপনার ওয়েবসাইটের HTTPS সংস্করণে স্বয়ংক্রিয়ভাবে দর্শকদের পুনঃনির্দেশ করে:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
আপনার যদি একটি বিদ্যমান .htaccess ফাইল থাকে:
পুনরায় লেখার ইঞ্জিন অনুলিপি করবেন না।
RewritCond এবং RewritRule শুরু হওয়া লাইনগুলি তত্ক্ষণাত্ ইতিমধ্যে বিদ্যমান RewritEngine অন অনুসরণ করে তা নিশ্চিত করুন।
GoDaddy.com অনুসারে .htaccess ব্যবহার করে এইচটিটিপিটিকে এইচটিটিপিএস এ পুনঃনির্দেশ করার সঠিক পদ্ধতি। কোডের প্রথম লাইনটি স্ব-ব্যাখ্যামূলক। কোডের দ্বিতীয় লাইনটি এইচটিটিপিএস বন্ধ রয়েছে কিনা তা পরীক্ষা করে দেখায় এবং যদি এটি তৃতীয় লাইন কোড চালিয়ে এইচটিটিপিএসকে এইচটিটিপিএসে পুনঃনির্দেশ করে, অন্যথায় কোডের তৃতীয় লাইন উপেক্ষা করা হয়।
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
https://www.godaddy.com/help/redirect-http-to-https-automatically-8828
সেরা সমাধান আপনার প্রয়োজনীয়তার উপর নির্ভর করে। এটি পূর্বে পোস্ট করা উত্তরের সংক্ষিপ্তসার সহ কিছু প্রসঙ্গ যুক্ত।
আপনি যদি অ্যাপাচি ওয়েব সার্ভারের সাথে কাজ করেন এবং এর কনফিগারেশনটি পরিবর্তন করতে পারেন তবে অ্যাপাচি ডকুমেন্টেশনটি অনুসরণ করুন :
<VirtualHost *:80>
ServerName www.example.com
Redirect "/" "https://www.example.com/"
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
</VirtualHost>
আপনি এটি একটি .htaccess
ফাইলের মধ্যে করতে পারেন কিনা তাও জিজ্ঞাসা করেছিলেন । সেক্ষেত্রে আপনি অ্যাপাচি-র রিরাইটইঙ্গাইন ব্যবহার করতে পারেন :
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
যদি সবকিছু ঠিকঠাক কাজ করে এবং আপনি ব্রাউজারগুলি এই পুনঃনির্দেশটি মনে রাখতে চান তবে আপনি সর্বশেষ লাইনটি এতে পরিবর্তন করে স্থায়ী হিসাবে ঘোষণা করতে পারেন:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
তবে আপনি যদি এই পুনর্নির্দেশের বিষয়ে আপনার মতামত পরিবর্তন করতে পারেন তবে সাবধান হন। ব্রাউজারগুলি এটি খুব দীর্ঘ সময়ের জন্য মনে রাখে এবং এটি পরিবর্তন হয়েছে কিনা তা পরীক্ষা করে না।
RewriteEngine On
ওয়েবসভার কনফিগারেশনের উপর নির্ভর করে আপনার প্রথম লাইনের প্রয়োজন হবে না ।
যদি আপনি কোনও পিএইচপি সমাধান সন্ধান করেন তবে $ _SERVER অ্যারে এবং শিরোনাম ফাংশনটি দেখুন :
if (!$_SERVER['HTTPS']) {
header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
}
.htaccess
ফাইল যেতে পারে ?
.Htaccess ফাইলে নিম্নলিখিত কোডটি যুক্ত করুন:
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^ https://[your domain name]%{REQUEST_URI} [R,L]
যেখানে [আপনার ডোমেন নাম] আপনার ওয়েবসাইটের ডোমেন নাম।
উপরের কোডের শেষ লাইনটি প্রতিস্থাপন করে আপনি নিজের ডোমেন নামের বাইরে নির্দিষ্ট ফোল্ডারগুলি পুনঃনির্দেশ করতে পারেন:
RewriteRule ^ https://[your domain name]/[directory name]%{REQUEST_URI} [R,L]
পুনঃনির্দেশের জন্য উপরে বর্ণিত সমস্ত কিছু করুন। আপনার শিরোনামে কেবল "এইচটিটিপি কঠোর পরিবহন সুরক্ষা" যুক্ত করুন। এটি মাঝের আক্রমণে মানুষ এড়াতে পারবে।
আপনার অ্যাপাচি কনফিগারেশন ফাইলটি সম্পাদনা করুন (/etc/apache2/sites-enabled/website.conf এবং /etc/apache2/httpd.conf উদাহরণস্বরূপ) এবং আপনার ভার্চুয়ালহোস্টে নিম্নলিখিতটি যুক্ত করুন:
# Optionally load the headers module:
LoadModule headers_module modules/mod_headers.so
<VirtualHost 67.89.123.45:443>
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
সমস্ত http
অনুরোধগুলিকে এখানে পুনর্নির্দেশ https
করতে আপনি ব্যবহার করতে পারেন:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
যদি মোড-লিখনটি সক্ষম না হয় এবং আপনি অ্যাপাচি ২.৪ এ থাকেন তবে আপনি অনুরোধগুলিকে পুনর্নির্দেশের জন্য Redirect
অভ্যন্তরীণ if
নির্দেশিকাও ব্যবহার করতে পারেন ।http
https
অ্যাপাচি ২.৪।
<if "%{HTTPS} !~ /on/">
Redirect / https://www.example.com/
</if>
আপনি যদি এমন পরিস্থিতিতে থাকেন যে আপনি সরাসরি আপনার সাইটের জন্য অ্যাপাচি কনফিগারেশন অ্যাক্সেস করতে পারবেন না, যা অনেকগুলি হোস্ট করা প্ল্যাটফর্ম এখনও এই ফ্যাশনটিতে সীমাবদ্ধ রয়েছে, তবে আমি আসলে একটি দ্বি-পদক্ষেপের পদ্ধতির প্রস্তাব দেব। যে কারণে অ্যাপাচি নিজেরাই ডকুমেন্ট করে যে আপনি তাদের কনফিগারেশন বিকল্পগুলি HTTP থেকে HTTPS- র জন্য mod_rewrite দ্বারা প্রথমে ব্যবহার করা উচিত।
প্রথমত, উপরে উল্লিখিত হিসাবে, আপনি আপনার .htaccess mod_rewrite বিধি (গুলি) সেটআপ করবেন:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
তারপরে, আপনার পিএইচপি ফাইলগুলিতে (আপনার অবস্থার জন্য এটি উপযুক্ত যেখানেই আপনার এটি করা দরকার, কিছু সাইট একক পিএইচপি ফাইলের মাধ্যমে সমস্ত অনুরোধগুলি সঞ্চারিত করবে, অন্যরা তাদের প্রয়োজনীয়তার উপর নির্ভর করে বিভিন্ন পৃষ্ঠাগুলি পরিবেশন করবে এবং অনুরোধ করা হচ্ছে) ):
<?php if ($_SERVER['HTTPS'] != 'on') { exit(1); } ?>
উপরোক্তগুলিকে এমন কোনও কোডের আগে চালানো দরকার যা কোনও সুরক্ষিত পরিবেশে সুরক্ষিত ডেটা সম্ভাব্যভাবে প্রকাশ করতে পারে। সুতরাং আপনার সাইটটি এইচটিএসিএসসিএস এবং মোড_উরাইটের মাধ্যমে স্বয়ংক্রিয় পুনঃনির্দেশ ব্যবহার করে, যখন আপনার স্ক্রিপ্ট (গুলি) এইচটিটিপিএসের মাধ্যমে অ্যাক্সেস না করে কোনও আউটপুট সরবরাহ করা হবে না তা নিশ্চিত করে।
আমি অনুমান করি বেশিরভাগ লোকেরা এটির মতো চিন্তা করে না এবং এভাবে অ্যাপাচি আপনাকে পরামর্শ দেয় যেখানে সম্ভব সেখানে এই পদ্ধতিটি ব্যবহার করবেন না। তবে আপনার ব্যবহারকারীর ডেটা সুরক্ষিত রয়েছে তা নিশ্চিত করতে এটি কেবল উন্নয়নের শেষের দিকে অতিরিক্ত চেক নেয়। আশা করি এটি আমাদের হোস্টিং পরিষেবাদি শেষের উপর বিধিনিষেধের কারণে প্রস্তাবিত অ-প্রস্তাবিত পদ্ধতি ব্যবহার করতে পারে এমন কাউকে সহায়তা করবে helps
.Htaccess এর মাধ্যমে এটি সাহায্য করবে।
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
এছাড়াও, আরও বিশদ জন্য এটি দেখুন। এইচটিটিপি এইচটিপিএস এ পুনঃনির্দেশ কিভাবে?
অন্য জিনিসের জন্য যদি আপনার মোড_আরাইটের প্রয়োজন না হয় তবে অ্যাপাচি কোর ব্যবহার করা যদি নির্দেশটি পরিষ্কার এবং দ্রুত হয়:
<If "%{HTTPS} == 'off'">
Redirect permanent / https://yoursite.com/
</If>
আপনি যদি আইএফ নির্দেশিকায় আরও শর্ত যুক্ত করতে পারেন, যেমন www উপসর্গ ব্যতীত একটি একক কমনীয় ডোমেন নিশ্চিত করতে:
<If "req('Host') != 'myonetruesite.com' || %{HTTPS} == 'off'">
Redirect permanent / https://myonetruesite.com/
</If>
প্রতিটি কিছুর জন্য Mod_rewrite ব্যবহার করার ক্ষেত্রে প্রচুর জড়তা রয়েছে, তবে দেখুন এটি আপনার পক্ষে কার্যকর হয় কিনা।
আরও তথ্য: https://httpd.apache.org/docs/2.4/mod/core.html#if
এটি কার্যকর অবস্থায় দেখতে (www। বা https: //, অথবা .com এর পরিবর্তে। নেট দিয়ে চেষ্টা করুন): https://nohodental.com/ (একটি সাইট যা আমি কাজ করছি)।
এই কোডটি আপনার কাছে নিয়ে যান। htaccess ফাইলটি HTTP কে স্বয়ংক্রিয়ভাবে HTTPS এ পুনঃনির্দেশ করুন
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
আমার সাইটের সমস্ত পৃষ্ঠাগুলি জোর করে HTTP থেকে আমার জন্য কাজ করা পৃষ্ঠাগুলির এনালগগুলিতে পুনঃনির্দেশ করার একটি পদ্ধতি পেয়েছি।
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Redirect 301 / https://example.com/
(উপরোক্ত উত্তরগুলির কোনওটি কাজ না করলে আমার পক্ষে কাজ করেছিল)
বোনাস:
ServerAlias www.example.com example.com
(স্থির https: // www .example.com পাওয়া যায়নি)
এটি সমস্ত URL টি https এবং www এ পুনঃনির্দেশ করে
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTPS_HOST} !^www.example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
আপনি যদি টমক্যাট সার্ভার থেকে এটি করতে চান তবে নীচের পদক্ষেপগুলি অনুসরণ করুন
স্ট্যান্ডেলোন অ্যাপাচি টমক্যাট (৮.৫.x) এইচটিটিপি সার্ভারে, এটি কীভাবে কনফিগার করতে পারে যদি কোনও ব্যবহারকারী www.domain.com টাইপ করেন তবে সেগুলি স্বয়ংক্রিয়ভাবে https (www.domain.com) সাইটে ফরোয়ার্ড হয়ে যাবে।
সমাপনী ট্যাগের আগে আপনার [টমক্যাট_বাস] /conf/web.xML এ নিম্নলিখিতগুলি অন্তর্ভুক্ত করার 2 পদক্ষেপ পদ্ধতি
step 1:
<security-constraint>
<web-resource-collection>
<web-resource-name>HTTPSOnly</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
এবং [টমক্যাট_বাস] /conf/server.xML সংযোগকারী সেটিংস সেট করে:
step 2:
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="[keystorelocation]" type="RSA" />
</SSLHostConfig>
</Connector>
দ্রষ্টব্য: আপনি যদি ইতিমধ্যে https কনফিগারেশন করে থাকেন এবং কেবল পদক্ষেপ 1 টি পুনর্নির্দেশের চেষ্টা করছেন।
আপনি যদি অ্যাপাচি ব্যবহার করে থাকেন তবে মোড_আরাইট হ'ল সহজ সমাধান এবং এটি কীভাবে করবেন তা অনলাইনে প্রচুর ডকুমেন্টেশন রয়েছে। উদাহরণস্বরূপ: http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html
কোনও লোড ব্যালান্সার যখন খেলায় আসে তখন এই সমস্যার আলাদা প্রান্ত হয়।
পরিস্থিতি নিম্নরূপ: - ব্রাউজার থেকে লোড ব্যালেন্সার এবং পিছনে ট্র্যাফিক হ'ল (হওয়া উচিত) এইচটিটিপিএস - লোড ব্যালান্সার এবং প্রকৃত ওয়েব সার্ভারের মধ্যে ট্র্যাফিক হ'ল এইচটিটিপি।
সুতরাং, পিএইচপি বা অ্যাপাচে সমস্ত সার্ভারের অনুরোধ ভেরিয়েবলগুলি দেখায় যে সংযোগটি কেবলমাত্র HTTP। এবং সার্ভারে এইচটিটিপি এবং এইচটিটিপিএস ডিরেক্টরিগুলি একই।
অনুমোদিত উত্তরে RewritCondition কার্যকর হয় না। এটি হয় একটি লুপ দেয় বা এটি ঠিক কাজ করে না।
প্রশ্ন: লোড ব্যালান্সারের উপর এটি কীভাবে কাজ করবেন।
(বা লোড ব্যালেন্সারটি ভুলভাবে কনফিগার করা হয়েছে Which যা আমি প্রত্যাশা করছি কারণ তখন আমি সমস্যাটিকে ওয়েবহোস্টিং সংস্থায় স্থানান্তর করতে পারি :-))
আপনি যদি একটি অ্যামাজন ওয়েব সার্ভিসেস ইলাস্টিক লোড ব্যালেন্সার ব্যবহার করেন যা https ট্র্যাফিক গ্রহণ করে এবং এটি আপনার সার্ভারের সাথে HTTP দিয়ে রক্ষা করে তবে সমস্ত HTTP ট্র্যাফিক https এ পুনঃনির্দেশ করার সঠিক উপায়টি এখানে বর্ণিত হয়েছে: https://aws.amazon। কম / premiumsupport / জ্ঞান-সেন্টার / পুনর্নির্দেশ-HTTP-HTTPS-elb
এক্স-ফরওয়ার্ড-প্রোটো শিরোনাম ব্যবহার করুন (এতে HTTP বা https রয়েছে) যা এখানে সর্বদা বর্ণিত হিসাবে লোড ব্যালান্সারের HTTP অনুরোধগুলিতে অন্তর্ভুক্ত থাকে: https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/x- ফরওয়ার্ড-headers.html
Httpd.conf ফাইলে:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>
বা আপনার রুটে .htaccess ফাইলটিতে:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
বোনাস: এটি আপনার স্থানীয় বিকাশ মেশিনে HTTP ট্র্যাফিক পুনঃনির্দেশ করার চেষ্টা করবে না।
এটা আমার জন্য কাজ করে:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
এবং উদাহরণস্বরূপ, http: // সার্ভার / ফু? ইমেল = কেউ% 40example.com কোনও সমস্যা ছাড়াই সাধারণত পুনঃনির্দেশ করে। ওয়েবসাইট রুট ফোল্ডারে ফাইল .htaccess অবস্থিত (উদাহরণস্বরূপ public_html নামকরণ করা)। RewritCond% {SERVER_PORT}! 443 $ পরিবর্তে RewritCond% {HTTPS}! ব্যবহার করা সম্ভব !
httpd
পিএইচপি দিয়ে নয়।