টেস্টডির ম্যাচটি jpg / txt ম্যাচের পরিবর্তে চয়ন করা হয়েছে তা নিশ্চিত করতে নিম্নলিখিত অবস্থানগুলি ব্যবহার করুন:
location ^~ /testdir {
deny all;
return 404;
}
location ~* ^.+\.(jpg|txt)$ {
root /var/www/site;
}
আপনার উদাহরণে, আপনার কাছে দুটি ধরণের অবস্থান রয়েছে। location /testdir
এটি একটি উপসর্গ অবস্থান, কারণ এটির ~
মধ্যে location
এবং এর মধ্যে টিলড ( ) নেই /testdir
।
location ~* ^.+\.(jpg|txt)$
একটি রেজেক্স অবস্থান (টিলডের *
পরে সরাসরি কারণে কেস-সংবেদনশীল এক )। থেকে nginx ডকুমেন্টেশন :
প্রদত্ত অনুরোধের সাথে মিলে যাওয়া অবস্থানটি সন্ধান করতে, এনজিনেক্স প্রথমে উপসর্গের স্ট্রিংগুলি (উপসর্গের অবস্থানগুলি) ব্যবহার করে সংজ্ঞায়িত অবস্থানগুলি পরীক্ষা করে। তাদের মধ্যে, দীর্ঘতম মিলের উপসর্গের সাথে অবস্থানটি নির্বাচন করা এবং মনে রাখা হয়। তারপরে কনফিগারেশন ফাইলে তাদের উপস্থিতির ক্রম অনুসারে নিয়মিত প্রকাশগুলি পরীক্ষা করা হয়। নিয়মিত এক্সপ্রেশনগুলির অনুসন্ধান প্রথম ম্যাচে শেষ হয় এবং এটির সাথে সম্পর্কিত কনফিগারেশন ব্যবহার করা হয়। যদি নিয়মিত অভিব্যক্তির সাথে কোনও মিল না পাওয়া যায় তবে পূর্বে মনে করা উপসর্গের অবস্থানটি কনফিগারেশন ব্যবহার করা হয়।
এখানে সমস্যাটি হ'ল আপনার টেস্টডিরের অবস্থানটি মনে রাখা হচ্ছে, তবে জেগিজি / টিএসটিএস অবস্থানটি মিলে যাওয়ার সাথে সাথে রেজেজ পর্বের সময় নির্বাচন করা হয়। ডকুমেন্টেশন থেকে নিম্নলিখিত নোটটি হল আমি আমার সমাধানের উপর ভিত্তি করে (উপরে দেওয়া):
দীর্ঘতম মিলে যাওয়া উপসর্গের অবস্থানটিতে যদি "^ ~" সংশোধক থাকে তবে নিয়মিত প্রকাশগুলি পরীক্ষা করা হয় না।