সেরা অনুশীলন: পৃথক 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
করার www
W / ডেডিকেটেড একক মধ্যে 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 এর সাথে পুনঃনির্দেশিত হবে।