এইচএসটিএস এবং ডাবল পুনর্নির্দেশ


9

আমি একটি শেয়ার্ড হোস্টিং ল্যাম্প এনভায়রনমেন্টে একটি ছোট ওয়েবসাইট পরিচালনা করি: এর মূলত অর্থ হ'ল htaccess ফাইল যা আমি সম্পাদনা করতে পারি।

আমি এইচএসটিএস সমর্থন যুক্ত করতে চেয়েছিলাম (এবং আমি এটি করেছিলাম), কিন্তু, আমি যখন এখানে এইচএসটিএস প্রিললোড যোগ্যতার জন্য আমার ওয়েবসাইটটি পরীক্ষা করেছিলাম তখন আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

ত্রুটি: HTTP প্রথমে www এ পুনঃনির্দেশ করে

http://example(HTTP) https://examplewww সাবডোমেন যুক্ত করার আগে অবিলম্বে (HTTPS) এ পুনর্নির্দেশ করা উচিত irect এই মুহুর্তে, প্রথম পুনর্নির্দেশটি হ'ল https://www.example.অতিরিক্ত পুনর্নির্দেশটি এইচএসটিএসকে সমর্থন করে এমন কোনও ব্রাউজার কেবল সাবডোমেন নয়, শীর্ষ স্তরের ডোমেনের জন্য এইচএসটিএস এন্ট্রি রেকর্ড করবে তা নিশ্চিত করার জন্য প্রয়োজনীয়।

সুতরাং, আমি মনে করি আমার এইভাবে ব্যবহারকারীদের পুনর্নির্দেশ করা উচিত:

  1. http://example (ব্যবহারকারী এটি তার ব্রাউজারের ঠিকানা বারে প্রবেশ করে)
  2. https://example (আমরা তাকে ওয়েবসাইটের এইচটিটিপিএস সংস্করণে পুনর্নির্দেশ করি)
  3. https://www.example (আমরা তাকে আবার সাবডোমেন www এ পুনর্নির্দেশ করি)

আমার বর্তমান পুনঃনির্দেশ এইভাবে সম্পন্ন হয়েছে:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

আমি শেষ লাইনের আগে একটি পুনর্নির্দেশ যুক্ত করার চেষ্টা করেছি:

RewriteRule ^(.*)$ https://example.com/$1 [R,L]

তবে আমি পেয়েছি ব্রাউজার থেকে একটি "পৃষ্ঠা সঠিকভাবে পুনঃনির্দেশ করছে না" error

সুতরাং, কোনও ওয়েবসাইটকে HTTP সংস্করণ থেকে https এবং শেষ পর্যন্ত www দিয়ে https এ পুনঃনির্দেশ করার সঠিক উপায় কী? এবং: কোন ঝুঁকি আছে?

উত্তর:


10

যেমনটি এইচএসটিএস প্রিললোড তালিকার জমা দেওয়ার প্রয়োজনীয়তার উপরে উল্লিখিত হয়েছে :

  1. আপনি যদি পোর্ট 80 এ শুনছেন তবে একই হোস্টে HTTP থেকে HTTPS এ পুনঃনির্দেশ করুন।

আপনাকে প্রথম হোস্টেHTTP_HOST নয়, একই হোস্টে (যেমন। ) পুনর্নির্দেশ করা দরকার example.comexample.comযদি ব্যবহারকারী www.example.comসরাসরি অনুরোধ করে তবে আপনাকে পুনর্নির্দেশের প্রয়োজন হবে না । (পরীক্ষার জন্য একটি অনুরোধ জড়িত করা হবে example.com।) এর পরে আপনি প্রয়োজনে ক্যানোনিকাল www সাবডোমেনে পুনর্নির্দেশ করতে পারেন।

আমি শেষ লাইনের আগে একটি পুনর্নির্দেশ যুক্ত করার চেষ্টা করেছি:

RewriteRule ^(.*)$ https://example.com/$1 [R,L]

এটি একটি পুনর্নির্দেশ লুপ তৈরি করবে, কারণ পূর্ববর্তী RewriteCondনির্দেশাবলী কেবল প্রথমটিতে প্রযোজ্য RewriteRule, তাই দ্বিতীয়টি RewriteRuleনিঃশর্তভাবে চলবে।

পরিবর্তে নিম্নলিখিত মত কিছু চেষ্টা করুন:

# HTTP to HTTPS redirect
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R,L]

# Canonical www redirect
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.%{HTTP_HOST}/$1 [R,L]

HTTP_HOSTসার্ভার ভেরিয়েবলের মান ধারণ করে HostHTTP অনুরোধ হেডার (অর্থাত। যাই হোক না কেন হোস্ট অনুরোধ করা হচ্ছে)।

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

মনে রাখবেন যে এটি 302 (অস্থায়ী) পুনঃনির্দেশগুলি। 301-এ পরিবর্তন করুন কেবলমাত্র যখন আপনি নিশ্চিত হন যে এটি ঠিক আছে।

এবং: কোন ঝুঁকি আছে?

কোন ঝুঁকি নেই। হ্যাঁ, সম্ভাব্য দুটি পুনর্নির্দেশগুলি রয়েছে যেখানে আগে কেবলমাত্র একটি ছিল (যা তর্কযোগ্যভাবে কম দক্ষ)। তবে এখনও দুটি মাত্র পুনঃনির্দেশ রয়েছে, যা SEO এর জন্য পুরোপুরি ঠিক। এছাড়াও, এইচএসটিএসের সাহায্যে ব্যবহারকারী-এজেন্ট কেবল একবারে ডাবল রিডাইরেক্টের অভিজ্ঞতা অর্জন করবে।


RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

একদিকে: (এই মুহুর্তের জন্য এইচএসটিএস উপেক্ষা করা ...) এটি নিজেই সম্পন্ন হত না, কারণ এটি কোনও অনুরোধকে https://example.com/...(যেমন। এইচটিটিপিএস এবং ডোমেন শীর্ষস্থানীয়) প্রমাণিত করে না ।


আরও পড়া:

  • প্রো ওয়েবমাস্টার্স এসই সম্পর্কিত একটি সম্পর্কিত প্রশ্নের উত্তর যা এইচএসটিএস বাস্তবায়নের বিষয়ে আরও বিশদে যায় .htaccess: https://webmasters.stackexchange.com/a/112264/52912

আপনাকে অনেক ধন্যবাদ, আমি শীঘ্রই এটি পরীক্ষা করব। চূড়ান্ত পক্ষের একটি দ্রুত উত্তর: এটি যে কোনওভাবেই কাজ করে তবে দেখে মনে হচ্ছে এটি এমন কিছু যা আমি সরাসরি নিয়ন্ত্রণ করতে পারি না (কমপক্ষে htaccess ফাইলে নেই) হোস্টিং সরবরাহকারীর ওয়েবসাইট পরিচালকের একটি পুনর্নির্দেশ প্যানেল রয়েছে

1
বিটিডব্লিউ, আপনার সমাধান নিখুঁতভাবে কাজ করে! :-)

1
"হোস্টিং প্রদানকারী ওয়েবসাইট পরিচালকের প্যানেল পুনর্নির্দেশ" - আমি এই জাতীয় সরঞ্জামগুলি থেকে সর্বদা সতর্ক থাকব। উদাহরণস্বরূপ, সিপ্যানেলে পুনঃনির্দেশ বিভাগটি খুব সীমাবদ্ধ এবং বরং কুখ্যাত।
মিঃ হোয়েট

1
আপনি কীভাবে Strict-Transport-Securityপ্রতিক্রিয়া শিরোনাম সেট করছেন তার উপর এটি নির্ভর করে । উদাহরণস্বরূপ, এটি পুনর্নির্দেশে সেট করতে আপনাকে নির্দেশের alwaysউপর যুক্তিটি ব্যবহার করতে হবে Headerআমি প্রো ওয়েবমাস্টারগুলির স্ট্যাক একটি সম্পর্কিত প্রশ্নের উত্তর (প্রায় আমার উত্তর প্রথম অংশ লাফালাফি on/ off) যা সম্পর্কে রূপায়ণকারী "HSTS আরো বিস্তারিত মধ্যে যায় আগে থেকে লোড " এ .htaccess
মিঃ হোয়াইট

1
আপনাকে স্বাগতম. সত্যি কথা বলতে কি, প্রো ওয়েবমাস্টার্স স্ট্যাক সম্ভবত .htaccessকেবলমাত্র সম্পর্কিত প্রশ্নগুলির জন্য আরও উপযুক্ত ((সার্ভারফল্ট মনে করে যে আপনি সার্ভারের পুরো নিয়ন্ত্রণ রাখেন, এক্ষেত্রে আপনি এটি করছেন না .htaccess)। এটি পৃথক পাত্রে ব্যবহার করে সার্ভার কনফিগারেশনে এটি কার্যকরভাবে তাত্পর্যপূর্ণ করা সহজ<VirtualHost> (যেহেতু আপনাকে এনভ ভার্স এবং অতিরিক্ত শর্তগুলির সাথে ঝামেলা করার দরকার নেই - এটি "ক্লিনার" এবং ত্রুটির প্রবণতা কম)। আমি মনে করি না যে যদি আপনার কেবল অ্যাক্সেস থাকে তবে আমি "প্রিলোড তালিকা" জমা দেওয়ার পরামর্শ দেব .htaccess। (আমার 2 সি)
মিঃ হোয়াইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.