কীভাবে সমস্ত এইচটিটিপি অনুরোধকে এইচটিটিপিএসে পুনর্নির্দেশ করবেন


294

আমি আমার সাইটের সমস্ত অনিরাপদ এইচটিটিপি অনুরোধকে (যেমন http://www.example.com) এইচটিটিপিএস ( https://www.example.com) এ পুনঃনির্দেশ করার চেষ্টা করছি । আমি পিএইচপি বিটিডব্লু ব্যবহার করছি। আমি কি এটি .htaccess এ করতে পারি?


1
আপনি এই মাধ্যমে করতে পারেন (এবং হওয়া উচিত) httpdপিএইচপি দিয়ে নয়।
উঁচ্ছবৃত্তি করা

2
@ জেএনপিএল, যদিও আমি এইচডিডিপি সমাধানটি পিএইচপি-ভিত্তিক সমাধানের চেয়ে ভাল তা স্বীকার করার পরেও আমি মনে করি না যে নিয়মতান্ত্রিক পুনঃনির্দেশটি সাধারণভাবে একটি ভাল অনুশীলন। আপনি যদি আপনার ব্যবহারকারীদের সর্বদা এইচটিটিপিএসে পুনর্নির্দেশ করতে চান তবে তাদেরকে "এন্ট্রি পয়েন্ট" (আপনার সাইটের প্রথম লিঙ্ক) থেকে সেখানে প্রেরণ করুন, এটি অর্ধেক পথ করবেন না, যা আপনার মনে হতে পারে এমন কিছু তথ্য ফাঁস হতে পারে সুরক্ষিত (যদি আপনি তাত্ক্ষণিক পুনঃনির্দেশটি লক্ষ্য করেন না)।
ব্রুনো

@Bruno: আমি সদৃশ HTTP অনুরোধ, হারিয়ে ক্যোয়ারী স্ট্রিং জন্য সম্ভাব্য লাইন বরাবর আরো ভাবছিলাম, এবং ব্যবহারকারী সম্ভাবনা নিজে টাইপhttp://
উঁচ্ছবৃত্তি করা

@jnpcl এটি সত্যিই একটি ভাল বিষয়। আমি কেবল এই পরামর্শ দিচ্ছিলাম যে, লোকেরা যখন তাদের সাইটের সুরক্ষার উন্নতি করতে এই ধরণের পুনর্নির্দেশের জন্য জিজ্ঞাসা করে, প্রায়শই এটি আসলে এটি উন্নত করে না (যেহেতু এটি প্রথম সরল এইচটিটিপি-র মাধ্যমে যাওয়ার অনুরোধটিকে বাধা দেয় না) ।
ব্রুনো

8
@ আউটিস: আপনার পোস্ট করা প্রথম লিঙ্কটি হ'ল এই প্রশ্ন।
মেই

উত্তর:


305

আপডেট: যদিও এই উত্তর কয়েক বছর আগে গৃহীত হয়েছে, তবে নোট করুন যে অ্যাপাচি ডকুমেন্টেশন দ্বারা এর পদ্ধতির বিরুদ্ধে এখন সুপারিশ করা হয়েছেRedirectপরিবর্তে ব্যবহার করুন । এই উত্তর দেখুন ।


RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

24
@ গুগল, আমি আমার উত্তর / মন্তব্যে যেমন বলছিলাম, আপনি যদি "সমস্ত সুরক্ষিত এইচটিটিপিকে [...] এইচটিটিপিএসে পুনঃনির্দেশিত করার" চেষ্টা করছেন, এই পদ্ধতির ফলে এই অনুরোধগুলি সুরক্ষিত হবে না, এটি ব্রাউজারকে কেবল তাদের তৈরি করে দেবে দুবার, একবার নিরাপত্তাহীন এবং একবার সুরক্ষিত।
ব্রুনো

13
আপনার সত্যিই যা করা উচিত এটি হ'ল এইচটিএসটিএস এর সাথে সংগীতানুষ্ঠানে।
রিজ মুর

3
এটি আমার অ্যাপাচি সংস্করণে একটি বাগ হতে পারে (২.৪..6 সেন্টোস in-তে প্যাকেজড হিসাবে) তবে এটিতে আমার কাছে নির্দিষ্ট ইউআরএল রয়েছে issues উদাহরণস্বরূপ, "@" চিহ্নটি http://server/foo?email=someone%40example.comপুনর্নির্দেশ করে https://server/foo?email=someone%2540example.comইউআরএল-কোটেশন দু'বার পাওয়া যায় । @ এসএসসি এর উত্তরে পদ্ধতিটি ব্যবহার করার ক্ষেত্রে এই সমস্যা নেই।
স্মৃতি 19

2
ভুল উত্তর. এটি কেবল বেস ইউআরএলকে পুনর্নির্দেশ করবে, সাবফোল্ডারে ইউআরএল নয়। RewritRule (। *) Https: //% {HTTP_HOST}% {REQUEST_URI} [আর = 301, এল] সঠিক উত্তর
ফ্রেড দ্য ওয়েইগগুই

7
তারা অগত্যা এর বিপরীতে সুপারিশ করে না: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.
অ্যাডাম

338

এ্যাপাচি ডক্স একটি লেখা ব্যবহারের বিরুদ্ধে সুপারিশ:

httpURL গুলি পুনর্নির্দেশ করতে 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

প্রশ্নটি জিজ্ঞাসা করা এবং উত্তর দেওয়ার পরেই এই নিবন্ধটি উঠে এসেছে, তবে মনে হয় এটি চলার বর্তমান উপায়।


11
এটি বর্তমান উত্তর হওয়া উচিত। কিন্তু "এসএসএল কনফিগারেশন" এ ঠিক কী যায়? একটি সম্পূর্ণ উদাহরণ সত্যই সহায়ক হবে।
বেন

6
@ বেন: এটি একটি আলাদা প্রশ্ন যা অনলাইনে নথিভুক্ত করা হয়; : ঘটনাক্রমে, আমি শুধু একটি প্রায় পূর্ণ উদাহরণ গতকাল যোগ serverfault.com/q/597012/26210 আপনি কি SSL এর কনফিগারেশন যায় একটি ধারণা দিতে পারে
এসএসসি

46
এটি একটি দুর্দান্ত ইঙ্গিত। তবে অ্যাপাচি ডকটিতে আরও উল্লেখ করা হয়েছে: "HTTP-to-https পুনঃনির্দেশের ক্ষেত্রে, যদি আপনার প্রধান সার্ভার কনফিগারেশন ফাইলটিতে অ্যাক্সেস না থাকে এবং আপনি এই টাস্কটি সম্পাদন করতে বাধ্য হন তবে RewritRule এর ব্যবহার যথাযথ হবে in পরিবর্তে একটি .htaccess ফাইল। " কে আমাকে কেনার ক্ষেত্রে দেখা যায় ...
peter_the_oak

4
@ ব্যবহারকারী 1844933 আপনি permanentকীওয়ার্ডটি ব্যবহার করলে , প্রভাবটি একই (ব্রাউজারটি 301 পুনর্নির্দেশ গ্রহণ করে)। যেমন:Redirect permanent "/" "https://example.com"
বিটলজুইস

2
@ হোয়াইটকেট সেন্টোস In-এ ফাইলটি /etc/httpd/conf/httpd.conf- এ অবস্থান করছে

141

আমি 301 পুনর্নির্দেশের সাথে সুপারিশ করব:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

7
ধন্যবাদ, এটি আমার পক্ষে কাজ করে, গৃহীত উত্তরটি দেয় না .. সম্ভবত অভাবের কারণে[L]
বিিলনোহ

1
হাঁ। এটি সঠিক উত্তর কারণ এটি সাবফোল্ডারগুলিতে সমস্ত
ইউআরএলকেও ঘুরিয়ে দেয়

এটি কি htaccess ফাইলের শীর্ষ স্তরে রয়েছে?
কোডিবাগস্টাইন

1
@ কোডি বুগস্টাইন এটি যেখানে আমি সর্বদা এটি রাখি এবং এটি সর্বদা কার্যকর হয়।
দান ভ্যান ডেন বার্গ

3
সমস্ত উত্তরের একটিরই অভাব রয়েছে - পুনর্নির্দেশের জন্য যে কোনও কোড আপনার .htaccess ফাইলের শুরুতে ঠিক রেখে দেওয়া উচিত, অন্য কোনও কিছু আগে আপনি যদি চান সমস্ত পৃষ্ঠাগুলি https এ পুনঃনির্দেশিত করতে চান।
ভাদিম আনিসিমভ

35

আমি যখন এই প্রশ্নে বলছিলাম , আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি সমস্ত এইচটিটিপি অনুরোধগুলি তাদের এইচটিটিপিএসের সমতুল্যভাবে অন্ধভাবে ডাইরেক্ট করা উচিত না, কারণ এটি আপনাকে সুরক্ষার ভুল ধারণা তৈরি করতে পারে। পরিবর্তে, আপনার সম্ভবত আপনার এইচটিটিপিএস সাইটের "রুট" আপনার HTTPS সাইটের মূলের দিকে পুনর্নির্দেশ করা উচিত এবং সেখান থেকে কেবল HTTPS- এ লিঙ্ক করা উচিত।

সমস্যাটি হ'ল যদি এইচটিটিপিএস সাইটে কোনও লিঙ্ক বা ফর্ম ক্লায়েন্টকে এইচটিটিপি সাইটে একটি অনুরোধ প্রেরণ করে, পুনঃনির্দেশের আগে এর বিষয়বস্তু দৃশ্যমান হবে।

উদাহরণস্বরূপ, যদি HTTPS- এ আপনার পরিবেশন করা পৃষ্ঠাগুলির মধ্যে একটি ফর্ম থাকে যা <form action="http://example.com/doSomething">কিছু তথ্য প্রেরণ করে না যা প্রেরণে প্রেরণ করা যায় না, তবে ব্রাউজারটি প্রথমে সম্পূর্ণ অনুরোধটি (সত্তা সহ, যদি এটি একটি পোষ্ট থাকে) HTTP সাইটে প্রেরণ করবে প্রথম। পুনঃনির্দেশটি তাত্ক্ষণিকভাবে ব্রাউজারে প্রেরণ করা হবে এবং যেহেতু বিপুল সংখ্যক ব্যবহারকারী সতর্কতা অক্ষম বা উপেক্ষা করে, সম্ভবত এটি উপেক্ষা করা হবে।

অবশ্যই, লিঙ্কগুলি সরবরাহ করার ভুল যা এইচটিটিপিএস সাইটে হওয়া উচিত তবে এটি এইচটিটিপিএস সাইটের জন্য হওয়া আপনার সমস্যার এইচটিটিপিএস সাইট হিসাবে একই আইপি ঠিকানায় এইচটিটিপি পোর্টে শুনার সাথে সাথেই সমস্যার কারণ হতে পারে। যাইহোক, আমি মনে করি দুটি সাইটকে "আয়না" হিসাবে রাখলে ভুল করার সম্ভাবনা কেবল বেড়ে যায়, কারণ আপনি এই ধারণাটি চালিয়ে যেতে পারেন যে এটি ব্যবহারকারীকে এইচটিটিপিএসে পুনঃনির্দেশ দিয়ে স্বয়ংক্রিয়ভাবে সংশোধন করবে, যদিও প্রায়শই অনেক দেরি হয়ে যায়। ( এই প্রশ্নে একই আলোচনা ছিল )


1
কোনও সম্পূর্ণ সাইটকে এইচটিটিপিএস হিসাবে পরিবেশন করার সিদ্ধান্ত নেওয়ার সময়, এই ধরণের পুনর্নির্দেশটি অর্থবোধ করে। আমি কোনও ব্যবহারকারী 403 পেতে চাই না কারণ তারা তাদের ল্যান্ডিং পৃষ্ঠার জন্য http উল্লেখ করেছে। আমি যদি কেউ কোনও লিঙ্কে HTTP নির্দিষ্ট করে এবং প্রযোজনায় খারাপ লাগছে তবে তা পোস্ট করে যদি আমি সম্মত না। এটি পরীক্ষার সময় ধরা পড়তে হবে, এমনকি জায়গায় পুনর্নির্দেশও করা উচিত। আমি "পারে" যুক্তি পছন্দ করি না কারণ এটি জায়গায় পুনঃনির্দেশ ছাড়াই "ঘটতে পারে" happen কোনও সুরক্ষিত ব্রাউজারে পরীক্ষা করার সময় লক্ষণগুলি একই রকম হয়, 403 প্রাপ্তির পরিবর্তে সাফ পাঠানোর বিষয়টি নিশ্চিত করার পরে তা পুনরায় নির্দেশিত হয়
ডেরেক লিটজ

হ্যাঁ, আমি যদি ভুলভাবে কেউ কোনও ফর্মের ক্রিয়াতে HTTP রাখি তবে হার্ড ব্যর্থ হওয়ার সুবিধাটি আমি দেখছি, তবে টাইপড ইউআরএলগুলির সাথে হালকা হওয়া বেশিরভাগ ক্ষেত্রেই বেশি গুরুত্বপূর্ণ বলে মনে হচ্ছে।
ড্যানিয়েল লুবারভ

4
@ ড্যানিয়েল, আমি সম্মত হই যে ব্যবহারকারীরা যখন ইউআরএল টাইপ করেন তখন লেন্সিয়েন্ট হওয়া কার্যকর। আমি বলব এটি এমন একটি ক্ষেত্রে যেখানে বিকাশ / পরীক্ষার সময় এই বৈশিষ্ট্যটি বন্ধ রাখা ভাল তবে উত্পাদনটি চালু করা (বা বিকাশ / পরীক্ষার শেষ পর্যায়ে)।
ব্রুনো

Dns এ https- এ কেন HTTP করবেন না।
মুহাম্মদ উমার

1
@ মুহাম্মাদ উমর, কারন ডিএনএস এর সাথে এর কোন যোগসূত্র নেই। তারা সাধারণভাবে একই হোস্টের নামটি ব্যবহার করবে, তবে ভিন্ন হোস্টের নামের সাথেও আপনাকে প্রোটোকল এবং পোর্ট পরিবর্তন করতে হবে।
ব্রুনো

18

আমি জানতে পেরেছি যে ডোমেনে 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 এ পুনঃনির্দেশ করা উচিত ।
মিঃ হোয়াইট

আমি এই লেখাটি কোথায় রাখব?
অ্যারন ফ্র্যাঙ্ক

একই ধরণের প্রশ্নে। নীচের প্রশ্নে কেউ সাহায্য করতে পারে? stackoverflow.com/questions/59503217/...
appsntech

14

এটি এইচটিএমএল পুনর্নির্দেশ পদ্ধতির এটি কার্যকর তবে সবচেয়ে ভাল নয়।

 <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যায়? এছাড়াও, সেই লিঙ্কটি মারা গেছে।
অ্যারন ফ্র্যাঙ্ক

8

আমি HTTP থেকে https এ পুনঃনির্দেশের এই পদ্ধতিটি পছন্দ করি। কারণ প্রতিটি সাইটের জন্য আমার এডিট করার দরকার নেই।

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

আমি এই লেখাটি কোথায় রাখব?
অ্যারন ফ্র্যাঙ্ক

6

আপনার .htaccess ফাইলে নিম্নলিখিত কোড ব্যবহার করা আপনার ওয়েবসাইটের HTTPS সংস্করণে স্বয়ংক্রিয়ভাবে দর্শকদের পুনঃনির্দেশ করে:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

আপনার যদি একটি বিদ্যমান .htaccess ফাইল থাকে:

পুনরায় লেখার ইঞ্জিন অনুলিপি করবেন না।

RewritCond এবং RewritRule শুরু হওয়া লাইনগুলি তত্ক্ষণাত্ ইতিমধ্যে বিদ্যমান RewritEngine অন অনুসরণ করে তা নিশ্চিত করুন।


এল এবং আর এর অর্থ কী?
অ্যারন ফ্র্যাঙ্ক

5

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


5

সেরা সমাধান আপনার প্রয়োজনীয়তার উপর নির্ভর করে। এটি পূর্বে পোস্ট করা উত্তরের সংক্ষিপ্তসার সহ কিছু প্রসঙ্গ যুক্ত।

আপনি যদি অ্যাপাচি ওয়েব সার্ভারের সাথে কাজ করেন এবং এর কনফিগারেশনটি পরিবর্তন করতে পারেন তবে অ্যাপাচি ডকুমেন্টেশনটি অনুসরণ করুন :

<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']); 
} 

দেখে মনে হচ্ছে অ্যাপাচি ডকুমেন্টেশন পুনরায় লেখার রুটের বিপরীতে প্রস্তাব দেয় s পুনঃনির্দেশ সম্পর্কে কি? আর একটি .htaccessফাইল যেতে পারে ?
অ্যারন ফ্র্যাঙ্ক

হ্যাঁ, পুনঃনির্দেশ পছন্দ করা হয় এবং .htaccess এ ব্যবহার করা যেতে পারে। তবে আপনি এই শর্তটি কেবল HTTP ট্র্যাফিককে https এ পুনর্নির্দেশ করতে পারবেন না। এটি https পাশাপাশি পুনর্নির্দেশ করে -> অসীম পুনর্নির্দেশ লুপ। আমি এটি উপরে HTTP (পোর্ট 80) এর জন্য ব্যবহৃত ভার্চুয়ালহোস্ট নির্দেশিকায় তালিকাভুক্ত করেছি, .htaccess সেই নির্দেশকে সমর্থন করে না এবং তাই এখানে পুনঃনির্দেশ ব্যবহার করা যাবে না।
মাইকেল

4

.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]

এল এবং আর এর অর্থ কী?
অ্যারন ফ্র্যাঙ্ক

4

পুনঃনির্দেশের জন্য উপরে বর্ণিত সমস্ত কিছু করুন। আপনার শিরোনামে কেবল "এইচটিটিপি কঠোর পরিবহন সুরক্ষা" যুক্ত করুন। এটি মাঝের আক্রমণে মানুষ এড়াতে পারবে।

আপনার অ্যাপাচি কনফিগারেশন ফাইলটি সম্পাদনা করুন (/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


2

সমস্ত httpঅনুরোধগুলিকে এখানে পুনর্নির্দেশ httpsকরতে আপনি ব্যবহার করতে পারেন:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]

যদি মোড-লিখনটি সক্ষম না হয় এবং আপনি অ্যাপাচি ২.৪ এ থাকেন তবে আপনি অনুরোধগুলিকে পুনর্নির্দেশের জন্য Redirectঅভ্যন্তরীণ ifনির্দেশিকাও ব্যবহার করতে পারেন ।httphttps

অ্যাপাচি ২.৪।

<if "%{HTTPS} !~ /on/">
Redirect / https://www.example.com/
</if>

2

আপনি যদি এমন পরিস্থিতিতে থাকেন যে আপনি সরাসরি আপনার সাইটের জন্য অ্যাপাচি কনফিগারেশন অ্যাক্সেস করতে পারবেন না, যা অনেকগুলি হোস্ট করা প্ল্যাটফর্ম এখনও এই ফ্যাশনটিতে সীমাবদ্ধ রয়েছে, তবে আমি আসলে একটি দ্বি-পদক্ষেপের পদ্ধতির প্রস্তাব দেব। যে কারণে অ্যাপাচি নিজেরাই ডকুমেন্ট করে যে আপনি তাদের কনফিগারেশন বিকল্পগুলি 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


1

.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]

এছাড়াও, আরও বিশদ জন্য এটি দেখুন। এইচটিটিপি এইচটিপিএস এ পুনঃনির্দেশ কিভাবে?


1
যে কেউ "অত্যধিক পুনর্নির্দেশ ত্রুটি" পায় এবং অনুমতি ওভাররাইড সম্পত্তি পরিবর্তন করতে পারে না তার জন্য এটি সমাধানের সমাধান।
এভোক্রোম

1

অন্য জিনিসের জন্য যদি আপনার মোড_আরাইটের প্রয়োজন না হয় তবে অ্যাপাচি কোর ব্যবহার করা যদি নির্দেশটি পরিষ্কার এবং দ্রুত হয়:

<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/ (একটি সাইট যা আমি কাজ করছি)।


1

এই কোডটি আপনার কাছে নিয়ে যান। htaccess ফাইলটি HTTP কে স্বয়ংক্রিয়ভাবে HTTPS এ পুনঃনির্দেশ করুন

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


হাই, উত্তরের জন্য ধন্যবাদ, আপনার উত্তরটি কী যুক্ত করে যা অন্যান্য বিদ্যমান উত্তরগুলি নেই?
গ্রিসি

একই ধরণের প্রশ্নে। নীচের প্রশ্নে কেউ সাহায্য করতে পারে? stackoverflow.com/questions/59503217/...
appsntech

0

আমার সাইটের সমস্ত পৃষ্ঠাগুলি জোর করে HTTP থেকে আমার জন্য কাজ করা পৃষ্ঠাগুলির এনালগগুলিতে পুনঃনির্দেশ করার একটি পদ্ধতি পেয়েছি।

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

0
 Redirect 301 / https://example.com/

(উপরোক্ত উত্তরগুলির কোনওটি কাজ না করলে আমার পক্ষে কাজ করেছিল)

বোনাস:

ServerAlias www.example.com example.com

(স্থির https: // www .example.com পাওয়া যায়নি)


0

এটি সমস্ত 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]

0

আপনি যদি টমক্যাট সার্ভার থেকে এটি করতে চান তবে নীচের পদক্ষেপগুলি অনুসরণ করুন

স্ট্যান্ডেলোন অ্যাপাচি টমক্যাট (৮.৫.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 টি পুনর্নির্দেশের চেষ্টা করছেন।



-1

কোনও লোড ব্যালান্সার যখন খেলায় আসে তখন এই সমস্যার আলাদা প্রান্ত হয়।

পরিস্থিতি নিম্নরূপ: - ব্রাউজার থেকে লোড ব্যালেন্সার এবং পিছনে ট্র্যাফিক হ'ল (হওয়া উচিত) এইচটিটিপিএস - লোড ব্যালান্সার এবং প্রকৃত ওয়েব সার্ভারের মধ্যে ট্র্যাফিক হ'ল এইচটিটিপি।

সুতরাং, পিএইচপি বা অ্যাপাচে সমস্ত সার্ভারের অনুরোধ ভেরিয়েবলগুলি দেখায় যে সংযোগটি কেবলমাত্র HTTP। এবং সার্ভারে এইচটিটিপি এবং এইচটিটিপিএস ডিরেক্টরিগুলি একই।

অনুমোদিত উত্তরে RewritCondition কার্যকর হয় না। এটি হয় একটি লুপ দেয় বা এটি ঠিক কাজ করে না।

প্রশ্ন: লোড ব্যালান্সারের উপর এটি কীভাবে কাজ করবেন।

(বা লোড ব্যালেন্সারটি ভুলভাবে কনফিগার করা হয়েছে Which যা আমি প্রত্যাশা করছি কারণ তখন আমি সমস্যাটিকে ওয়েবহোস্টিং সংস্থায় স্থানান্তর করতে পারি :-))


পুনঃনির্দেশটি কেবল লোড ব্যালেন্সারের পরিবর্তে ঘটতে হবে। লোড ব্যালান্সারের ধরণের উপর নির্ভর করে কনফিগারেশনে এটি সম্ভব হওয়া উচিত, অথবা এটি নিজেই অ্যাপাচি উদাহরণ, যেখানে গৃহীত উত্তরটি কাজ করবে। কেবল একক নোডে এটি করবেন না।
৮৮ ই

-1

আপনি যদি একটি অ্যামাজন ওয়েব সার্ভিসেস ইলাস্টিক লোড ব্যালেন্সার ব্যবহার করেন যা 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 ট্র্যাফিক পুনঃনির্দেশ করার চেষ্টা করবে না।


-1

এটা আমার জন্য কাজ করে:

<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}! ব্যবহার করা সম্ভব !

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.