আপনার প্রায় সবসময় ব্যবহার করা উচিত $host
, কারণ ব্যবহারকারী-এজেন্ট যেভাবে আচরণ করে তা বিবেচনা না করেই বোধগম্য কিছু হওয়ার গ্যারান্টিযুক্ত কেবলমাত্র যদি আপনার অন্য কোনও ভেরিয়েবলের শব্দার্থবিজ্ঞানের প্রয়োজন না হয়।
পার্থক্যটি এনজিনেক্স ডকুমেন্টেশনে ব্যাখ্যা করা হয়েছে :
$host
"অগ্রাধিকারের এই ক্রমের মধ্যে রয়েছে: অনুরোধ লাইন থেকে হোস্টের নাম, বা 'হোস্ট' অনুরোধ শিরোনাম ক্ষেত্র থেকে হোস্টের নাম, বা কোনও অনুরোধের সাথে মিলে যাওয়া সার্ভার নাম"
$http_host
অনুরোধটিতে উপস্থিত থাকলে HTTP "হোস্ট" শিরোনাম ক্ষেত্রের সামগ্রী রয়েছে
$server_name
রয়েছে server_name
ভার্চুয়াল হোস্ট যা অনুরোধ প্রক্রিয়া যেমন nginx কনফিগারেশনে সংজ্ঞায়িত হয়েছিল। যদি একটিতে server
একাধিক server_name
গুলি থাকে তবে কেবলমাত্র প্রথমটি এই পরিবর্তনশীলটিতে উপস্থিত থাকবে।
যেহেতু ব্যবহারকারী-এজেন্টদের জন্য হোস্ট: শিরোনামের পরিবর্তে অনুরোধ লাইনে হোস্টনামটি প্রেরণ করা আইনী, যদিও এটি প্রক্সিগুলির সাথে সংযোগের সময় ব্যতীত খুব কমই করা হয়, আপনাকে এটির জন্য অ্যাকাউন্ট করতে হবে।
আপনাকে সেই ক্ষেত্রে অ্যাকাউন্ট করতে হবে যেখানে ব্যবহারকারী-এজেন্ট কোনও হোস্ট-নেম প্রেরণ করেন না, যেমন প্রাচীন HTTP / 1.0 অনুরোধ এবং আধুনিক খারাপভাবে লিখিত সফ্টওয়্যার। আপনি যদি একাধিক ওয়েব সাইট পরিবেশন করছেন, বা আপনার সার্ভারে যদি আপনার কেবলমাত্র একটি একক ওয়েব সাইট থাকে তবে আপনি কোনও একক ভার্চুয়াল হোস্টের মাধ্যমে সমস্ত কিছুতে প্রক্রিয়াজাত করতে পারেন, এমন কোনও ক্যাচ-অল ভার্চুয়াল হোস্টে যা কোনও কিছুই পরিবেশন করে না সেগুলিকে ডাইভার্ট করে আপনি এটি করতে পারেন you । পরবর্তী ক্ষেত্রে আপনাকেও এটির জন্য অ্যাকাউন্ট করতে হবে।
$host
এইচটিটিপি অনুরোধ গঠনের সময় ব্যবহারকারী-এজেন্ট যে সমস্ত সম্ভাব্য জিনিসগুলি করতে পারে কেবল তার জন্য কেবল পরিবর্তনশীল অ্যাকাউন্টগুলি accounts
$scheme
এবং$host
...return 301 /forum/index.php?posts/$arg_p/;
কাজ করে জরিমানা।