সেরা অনুশীলন: পৃথক serverডাব্লু / হার্ডকোডযুক্তserver_name
এনগিনেক্সের সাথে সর্বোত্তম অনুশীলন হ'ল serverএই জাতীয় পুনর্নির্দেশের জন্য আলাদাভাবে ব্যবহার করা ( serverআপনার মূল কনফিগারেশনের সাথে ভাগ করা হয়নি), সবকিছুকে হার্ডকোড করা এবং নিয়মিত প্রকাশগুলি একেবারে ব্যবহার না করা।
আপনি এইচটিটিপিএস ব্যবহার করলে ডোমেনগুলি হার্ডকোড করাও প্রয়োজন হতে পারে কারণ আপনি কোন শংসাপত্রগুলি সরবরাহ করবেন তা আপনাকে সামনেই জানতে হবে।
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
server_name www.example.org;
return 301 $scheme://example.org$request_uri;
}
server {
server_name example.com example.org;
# real configuration goes here
}
এর মধ্যে নিয়মিত অভিব্যক্তি ব্যবহার করা server_name
আপনার যদি বেশ কয়েকটি সাইট থাকে এবং সর্বাধিক চূড়ান্ত পারফরম্যান্সের জন্য যত্ন না রাখেন তবে তাদের প্রত্যেকেরই www.উপসর্গের ক্ষেত্রে একই নীতি থাকতে চান তবে আপনি নিয়মিত ভাব প্রকাশ করতে পারেন। আলাদা ব্যবহারের সর্বোত্তম অনুশীলনটি serverএখনও দাঁড়াবে।
মনে রাখবেন যে আপনি https ব্যবহার করলে এই সমাধানটি জটিল হয়ে ওঠে, কারণ আপনার যদি এটির কাজটি করতে চান তবে আপনার সমস্ত ডোমেন নামগুলি কভার করার জন্য আপনার একক শংসাপত্র থাকতে হবে।
অ- wwwকরার wwwW / ডেডিকেটেড একক মধ্যে Regex serverসব সাইটগুলির জন্য:
server {
server_name ~^(?!www\.)(?<domain>.+)$;
return 301 $scheme://www.$domain$request_uri;
}
wwwসমস্ত সাইটের জন্য wwwউত্সর্গীকৃত এককগুলিতে নন- ডাব্লু / রেজেক্সকে server:
server {
server_name ~^www\.(?<domain>.+)$;
return 301 $scheme://$domain$request_uri;
}
wwwশুধুমাত্র কিছু সাইটের জন্য wwwউত্সর্গীকৃত নন- ডাব্লু / রেজেক্সকে server:
এটা তো ঢাকা শুধুমাত্র একটি ডোমেইন দম্পতি, তাহলে আপনি শুধুমাত্র মেলে ভালো কিছু ব্যবহার করতে পারেন Regex সীমিত করার প্রয়োজন হতে পারে www.example.org, www.example.comএবং www.subdomain.example.net:
server {
server_name ~^www\.(?<domain>(?:example\.org|example\.com|subdomain\.example\.net))$;
return 301 $scheme://$domain$request_uri;
}
নিয়মিত এক্সপ্রেশন ডাব্লু / এনজিনেক্স পরীক্ষা করা
আপনি পরীক্ষা করতে পারেন যে রেজেক্স pcretestআপনার সিস্টেমে প্রত্যাশার সাথে কাজ করে যা ঠিক একই pcreলাইব্রেরি যা আপনার এনগিনেক্স নিয়মিত প্রকাশের জন্য ব্যবহার করবে:
% pcretest
PCRE version 8.35 2014-04-04
re> #^www\.(?<domain>(?:example\.org|example\.com|subdomain\.example\.net))$#
data> test
No match
data> www.example.org
0: www.example.org
1: example.org
data> www.test.example.org
No match
data> www.example.com
0: www.example.com
1: example.com
data> www.subdomain.example.net
0: www.subdomain.example.net
1: subdomain.example.net
data> subdomain.example.net
No match
data> www.subdomain.example.net.
No match
data>
নোট আপনি trailing বিন্দু বা কেস সম্পর্কে চিন্তা করতে হবে না যে, nginx ইতিমধ্যে প্রতি যেমন যত্ন নেয় হিসাবে, nginx সার্ভার নাম Regex যখন "হোস্ট" হেডারের একটি শেষে ডট হয়েছে ।
ifবিদ্যমান server/ এইচটিটিপিএসের মধ্যে ছিটিয়ে দিন :
এই চূড়ান্ত সমাধানটি সাধারণত সেরা অনুশীলন হিসাবে বিবেচিত হয় না, তবে এটি এখনও কাজ করে এবং কাজটি করে।
প্রকৃতপক্ষে, আপনি যদি এইচটিটিপিএস ব্যবহার করে থাকেন তবে এই চূড়ান্ত সমাধানটি বজায় রাখা সহজতর হতে পারে, কারণ আপনাকে বিভিন্ন serverসংজ্ঞাগুলির মধ্যে এসএসএল নির্দেশনার পুরো গুচ্ছটি কপি-পেস্ট করতে হবে না , এবং পরিবর্তে কেবল স্নিপেটগুলিকেই এতে স্থাপন করতে পারে আপনার সাইটগুলি ডিবাগ করা এবং বজায় রাখা সহজ করে তোলে প্রয়োজনীয় সার্ভারগুলি।
অ- wwwথেকে www:
if ($host ~ ^(?!www\.)(?<domain>.+)$) {
return 301 $scheme://www.$domain$request_uri;
}
wwwঅ- করতে www:
if ($host ~ ^www\.(?<domain>.+)$) {
return 301 $scheme://$domain$request_uri;
}
একটি একক পছন্দসই ডোমেন হার্ডকডিং
আপনি যদি আরও কিছুটা পারফরম্যান্স চান, পাশাপাশি একক একাধিক ডোমেন serverব্যবহার করতে পারেন তবে এটি একটি স্পষ্টতই একটি পছন্দসই ডোমেনকে হার্ডকোড করা বুদ্ধিমান হতে পারে:
if ($host != "example.com") {
return 301 $scheme://example.com$request_uri;
}
তথ্যসূত্র:
Dashboard > Settings > General Settingsএবং নিশ্চিত করুন যেwwwওয়ার্ডপ্রেস ঠিকানা / সাইটের ঠিকানা URL গুলিতে কোনও নেই । আপনি নিজের এনগিনেক্স কীভাবে কনফিগার করবেন তা বিবেচনাধীন নয়, যদি এই ইউআরএলগুলিতে আপনার কাছে একটি www থাকে তবে এটি এটির সাথে www এর সাথে পুনঃনির্দেশিত হবে।