কোনও সাইটের কোনও HTTP: // সংস্করণে যাওয়ার HTTPS: // সমতুল্য করার সমস্ত প্রচেষ্টা পুনর্নির্দেশ করার কি কোনও পরিষ্কার উপায় আছে?
কোনও সাইটের কোনও HTTP: // সংস্করণে যাওয়ার HTTPS: // সমতুল্য করার সমস্ত প্রচেষ্টা পুনর্নির্দেশ করার কি কোনও পরিষ্কার উপায় আছে?
উত্তর:
আমি মনে করি সবচেয়ে পরিষ্কার উপায়টি এখানে আইআইএস -ইড.কম-এ বর্ণিত । এটি কেবলমাত্র ওয়েবকনফিগ এবং তাই আপনি যদি সার্ভার পরিবর্তন করেন তবে 403.4 কাস্টম ত্রুটি পৃষ্ঠা বা অন্যান্য বিশেষ অনুমতি দিয়ে আপনি যে সমস্ত পদক্ষেপগুলি পেরেছেন সেগুলি আপনাকে মনে রাখতে হবে না, এটি ঠিক কাজ করে।
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
আমি খুঁজে পাওয়া সবচেয়ে সহজ এবং পরিষ্কার সমাধান ছিল
এসএসএল সেটিংসে -> এসএসএল প্রয়োজন
ত্রুটি পৃষ্ঠাগুলিতে -> 403.4 এ ত্রুটি -> এইচটিটিপিএস সাইটে পুনর্নির্দেশ করুন
ত্রুটি পৃষ্ঠাগুলিতে -> বৈশিষ্ট্যসমূহ সেটিংস সম্পাদনা করুন ... -> স্থানীয় অনুরোধগুলির জন্য বিশদ ত্রুটি এবং দূরবর্তী অনুরোধের জন্য কাস্টম ত্রুটি পৃষ্ঠাগুলি সেট করুন
সুবিধাটি হ'ল এর জন্য কোনও অতিরিক্ত লাইন কোডের প্রয়োজন নেই। ক্ষতি হ'ল এটি আপনাকে পরম ইউআরএলে পুনঃনির্দেশ করে।
একটি পরিষ্কার উপায় কেবল URL - URL টি স্কিম পরিবর্তন করে - https থেকে এবং সমস্ত কিছুকে সমতুল্য ছেড়ে দেয়। এটি সার্ভার-সাইড হওয়া উচিত যাতে কোনও ব্রাউজারের সমস্যা না থাকে।
এটি কীভাবে করা হয় সে সম্পর্কে জেপিপিন্টো.কমের ধাপে ধাপে নির্দেশনা রয়েছে, কেবলমাত্র তারা সার্ভার-সাইড পুনর্নির্দেশের পরিবর্তে জাভাস্ক্রিপ্ট (এইচটিপিআরডাইরেক্ট.ইচটিএম) ব্যবহার করে। কোনও কারণে, যদি আপনি 'বন্ধুত্বপূর্ণ HTTP ত্রুটি বার্তাগুলি দেখান' সক্ষম করে থাকেন তবে আমি জাভাস্ক্রিপ্টটি চালাতে পারিনি, যা ডিফল্টরূপে রয়েছে। স্ক্রিপ্টের সাথে অন্য একটি জিনিস হ'ল পাথের পুনঃনির্দেশ এফএফ বা ক্রোমেও কাজ করে না। স্ক্রিপ্টটি সর্বদা রুটে পুনর্নির্দেশ করে। (সম্ভবত আমি কিছু মিস করেছি, কারণ এটির পথে পুনর্নির্দেশ করা উচিত))
এই কারণে আমি পুনর্নির্দেশের জন্য একটি এএসপি পৃষ্ঠা ব্যবহার করেছি। ডাউনসাইড অবশ্যই এটির জন্য সার্ভারে ক্লাসিক এএসপি সক্ষম হওয়া প্রয়োজন।
ওপসানব্লগের একটি এএসপি স্ক্রিপ্ট এবং নির্দেশাবলী রয়েছে যা আইআইএস 6 এর সাথে ভাল কাজ করে।
আইআইএস with এর সাথে এই পদ্ধতিটি ব্যবহার করে আমার কয়েকটি সমস্যা হয়েছিল। বেশিরভাগ ইউজার ইন্টারফেস ইস্যু করে, যেহেতু আইআইএস 7 কিছু মিস করা সত্যিই সহজ করে তোলে।
আইআইএস ম্যানেজারের ফাইলের নামটি হেডারে প্রদর্শন করা উচিত।
Global.asax
protected void Application_BeginRequest()
{
if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}
আমি ক্লাসিক এস্প (ইন্ট্রনেট) ব্যবহার করি এবং লগইন হওয়া ফাইলগুলিতে যে ফাইলগুলিতে লগইন দরকার তা পুনঃনির্দেশিত করে:
if Request.ServerVariables("SERVER_PORT_SECURE") <> "1" or Request.ServerVariables("HTTPS") <> "on" then
Response.Redirect "https://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
end if
এটি অবশ্যই জিইটি বা পোষ্ট ডেটা অন্তর্ভুক্ত করে না। সুতরাং বাস্তবে এটি আপনার সুরক্ষিত পৃষ্ঠায় একটি পরিষ্কার পুনর্নির্দেশ।