উত্তর:
$hostকোর মডিউলটির একটি পরিবর্তনশীল ।
$ হোস্ট
এই ভেরিয়েবলটি অনুরোধের শিরোনামে হোস্টের অনুরোধ বা সার্ভারের নাম অনুরোধটি প্রক্রিয়া করে যদি হোস্ট শিরোনাম উপলব্ধ না হয় equal
এই পরিবর্তনশীলটির ক্ষেত্রে $ http_host এর থেকে পৃথক মান থাকতে পারে: 1) যখন হোস্ট ইনপুট শিরোনামটি অনুপস্থিত থাকে বা খালি মূল্য থাকে, $ হোস্টটি সার্ভার_নামের নির্দেশকের মানের সমান হয়; 2) যখন হোস্টের মানটিতে পোর্ট নম্বর থাকে, $ হোস্টটি সেই পোর্ট নম্বরটি অন্তর্ভুক্ত করে না। $ হোস্টের মান সর্বদা 0.8.17 থেকে ছোট হাতের অক্ষরে থাকে।
$http_hostএকই মডিউলটিরও একটি পরিবর্তনশীল তবে এটি আপনাকে সেই নামের সাথে পাবেন না কারণ এটি সাধারণভাবে $http_HEADER( রেফ ) হিসাবে সংজ্ঞায়িত করা হয়েছে ।
$ http_HEADER
HTTP রিকোয়েস্ট শিরোনাম HEADER এর মান যখন ছোট হাতের সাথে রূপান্তরিত হয় এবং 'ড্যাশ' দিয়ে 'আন্ডারস্কোর' এ রূপান্তরিত হয়, যেমন $ http_user_agent, $ http_referer ...;
সারমর্ম:
$http_hostসর্বদা HTTP_HOSTঅনুরোধ শিরোনাম সমান ।$hostসমান $http_host, ছোট হাতের এবং পোর্ট নম্বর ছাড়াই (উপস্থিত থাকলে) ব্যতীত যখন HTTP_HOSTঅনুপস্থিত থাকে বা খালি মান হয় । সেক্ষেত্রে, $hostমান সমান server_nameসার্ভার অনুরোধ প্রক্রিয়া এর নির্দেশ।server_nameনির্দেশিকাও থাকতে পারে। যদি আপনার প্রথমটিতে একটি রেজেেক্স হয়, তবে এটি হয়ে যায় $hostএবং পুনর্লিখনের নিয়মের সময় সমস্ত প্রকার কুৎসিত জিনিসগুলি ঘটতে পারে।
$server_nameভেরিয়েবলটি কি server_nameএকাধিক server_nameনির্দেশিকা থাকলে নির্দেশকের মান বা প্রকৃত সার্ভারের নামের সমতুল্য হয় ?
$server_nameসর্বদা সার্ভার_নামের নির্দেশের সাথে নির্দিষ্ট করা প্রথম মানের সমান। উদাহরণস্বরূপ, সঙ্গে server_name example.com one.example.com two.example.com;, $server_nameসবসময় হতে হবে "example.com", যা হোস্ট ব্যবহারকারী নির্দিষ্ট করেছে নির্বিশেষে । আসলে, আপনার যদি এটি না থাকে default_serverতবে হোস্টটি সম্পূর্ণ আলাদা কিছু হতে পারে (যেমন ..org)।
server_nameযা বর্তমান সার্ভার ব্লকে সংজ্ঞায়িত হয়। আপনার যদি একাধিকserver_nameগুলি থাকে তবে কেবল প্রথমটি উপস্থিত হবে।