Httpd.conf এ $ {var} এবং% {var between এর মধ্যে পার্থক্য কী?
বেশ কিছু। কোনও কঠোর এবং দ্রুত নিয়ম নেই যা বলে যে " $
করায় এক্স, %
ডায়া ওয়াই", কারণ তারা কোথায় এবং কীভাবে ব্যবহৃত হচ্ছে তার উপর নির্ভর করে তারা বিভিন্ন জিনিস করে।
_ Rew VAR} সর্বদা ব্যবহৃত হবে httpd.conf- এ, পরিবর্তে mod_rewrite নির্দেশিকা ছাড়া
না - কনফিগার জুড়ে প্রতিটি জায়গায় ${VAR}
প্রতিস্থাপন হিসাবে প্রয়োগ করা হয় এমনকি একটি মোড_উরাইট সম্পর্কিত রেখায়। এগুলি কেবলমাত্র httpd বাইনারি বা নির্দেশকে প্রদত্ত বিকল্পটি ব্যবহার করে শুরুতে সংজ্ঞায়িত করা যেতে পারে ।-D
Define
এটি করা যেতে পারে কারণ এই ভেরিয়েবলগুলিতে একটি :
অক্ষর থাকতে হবে না , তবে RewriteMap
ব্যবহারে অবশ্যই একটি :
অক্ষর থাকতে হবে । এটি $
কোনও দ্বন্দ্ব ছাড়াই চূড়ান্তভাবে বিভিন্ন উপায়ে ব্যবহারের অনুমতি দেয় - পার্সার দেখেন :
এবং জানেন যে এটি প্রতিস্থাপন করার কথা নয়।
সেটডএনভিআইএফ ডাইরেক্টিভ ব্যবহার করে httpd.conf তে কোনও ভেরিয়েবল সেট করতে হবে, একই httpd.conf ব্যবহারের জন্য, যখন ভেরিয়েবলটি mod_rewrite নির্দেশকের সাথে ব্যবহার করা হয়, যেখানে ভেরিয়েবল% {var as হিসাবে ব্যবহৃত হত?
নং এনভায়রনমেন্ট ভেরিয়েবল ভেরিয়েবল মাধ্যমে সেট মত নয় -D
বা Define
- তারা প্রতি অনুরোধ প্রসঙ্গ (যাদের আপনি বেশী সাথে এসেছেন সেটিং হয় সম্পূর্ণরূপে আলাদা করছি SetEnvIf
), যে শুধুমাত্র নির্দিষ্ট নির্দেশনা ব্যবহার করবে। সমর্থিত যেখানে তাদের উল্লেখ করা হয়েছে - মোড_উইরায়েটে তারা যে %{ENV:variable}
লগ আছে সেগুলি রয়েছে %{variable}e
এবং অনেকগুলি নির্দেশাবলীর কাছে দেখতে লজিক চেক রয়েছে env=variable
।
সুতরাং, মূলত; এটি একটি বিভ্রান্তিকর গোলযোগ - গত কয়েক দশক ধরে ওয়েব সার্ভারের ইতিহাসের প্রমাণ। সম্ভবত মুখ্য বিষয় যা আপনাকে বিভ্রান্ত করছে তা হ'ল মোড_আরাইটের বাক্য গঠনটি কোনওভাবেই কনফিগারেশনের অন্য কোনও অংশে প্রসারিত হয় না; সব আলাদা। এগুলি থেকে মূল কথাটি হ'ল এই সমস্তটি বোঝার জন্য কোনও নিয়মকানুনের 'নিয়ম' নেই - $
এক জায়গার অর্থ $
অন্য জায়গার থেকে সম্পূর্ণ আলাদা কিছু ।
কয়েকটি সহজ রেফারেন্স পয়েন্ট:
- আপনি যদি আপাচি শুরু হওয়ার সাথে সাথে স্থিতিশীলভাবে কোনও ভেরিয়েবল সেট করতে খুঁজছেন তবে অ্যাপাচি স্টার্টআপে একবার ব্যবহার করুন
Define
এবং ${VAR}
প্রতিস্থাপন করুন। আপনি যখন বিকাশ এবং উত্পাদন পরিবেশের মধ্যে ভাগ করে কনফিগারেশন ফাইলের মতো কিছু করতে চান তখন এটি বেশিরভাগ ক্ষেত্রে কার্যকর - তবে এটি এর ব্যবহারের সাথে বিভ্রান্ত $
হওয়ার দরকার নেই RewriteMap
, যা সর্বদা একটি থাকে :
।
- যদি আপনি নির্দিষ্ট অনুরোধগুলিতে ভেরিয়েবলগুলির সাথে কাজ করার সন্ধান করছেন তবে পরিবেশের ভেরিয়েবলগুলি আপনার পরে যা রয়েছে - তবে আপনি কোনও নির্দিষ্ট নির্দেশাবলীর সাথে ব্যবহার করার সময় যে বাক্য গঠনটি ব্যবহার করতে পারেন সেগুলি সম্পর্কে আপনি অনুমান করতে পারবেন না। আপনাকে সেই নির্দেশের জন্য ডকুমেন্টেশন চেক করতে হবে।
- মোড_উইরাইট যখন প্রশ্নে থাকে তখন ভেরিয়েবল এবং তাদের সিনট্যাক্স সম্পর্কে আপনারা যা কিছু ভাবেন সেগুলি ফেলে দিন। এতে এর নিজস্ব ভেরিয়েবলগুলির একটি সেট রয়েছে
%{VAR}
, আপনি আপনার 'সাধারণ' এনভায়রনমেন্ট ভেরিয়েবল এর সাথে পেতে পারেন %{ENV:VAR}
এবং এর সাথে আপনি পরিবেশের ভেরিয়েবল সেট করতে পারেন [E=VAR]
।