অনেকগুলি পোস্টারকে তাদের .htaccessফাইলে রাইরাইটরুল এবং রাইরাইটকন্ড বিবৃতি ডিবাগ করতে সমস্যা হয় । এর মধ্যে বেশিরভাগ একটি ভাগ করা হোস্টিং পরিষেবা ব্যবহার করছে এবং তাই রুট সার্ভার কনফিগারেশনটিতে অ্যাক্সেস নেই। তারা .htaccessপুনর্লিখনের জন্য ফাইলগুলি এড়াতে পারবেন না এবং পুনরায় লেখার লোগলিভেল সক্ষম করতে পারবেন না "যেমনটি অনেক উত্তরদাতারা পরামর্শ দেন Also এছাড়াও অনেকগুলি .htaccessস্পেসিফিক সমস্যা এবং প্রতিবন্ধকতাগুলি ভালভাবে আচ্ছাদিত হয় না a স্থানীয় পরীক্ষা এলএএমপি স্ট্যাক স্থাপন করা বেশিরভাগ ক্ষেত্রে শেখার বক্ররেখার সাথে জড়িত ves ।
সুতরাং আমার প্রশ্নটি এখানে কীভাবে আমরা পরামর্শ দিচ্ছি যে তারা নিজেরাই তাদের নিয়মগুলি ডিবাগ করবে । আমি নীচে কয়েকটি পরামর্শ সরবরাহ করি। অন্যান্য পরামর্শ প্রশংসা করা হবে।
বুঝতে পারছেন যে
.htaccessফাইলের মাধ্যমে মোড_আরাইট ইঞ্জিন চক্র । ইঞ্জিনটি এই লুপটি চালায়:do execute server and vhost rewrites (in the Apache Virtual Host Config) find the lowest "Per Dir" .htaccess file on the file path with rewrites enabled if found(.htaccess) execute .htaccess rewrites (in the user's directory) while rewrite occurredসুতরাং আপনার নিয়মগুলি বারবার কার্যকর করা হবে এবং আপনি যদি ইউআরআই পথ পরিবর্তন করেন তবে এটি
.htaccessউপস্থিত থাকলে অন্য ফাইলগুলি কার্যকর করতে পারে। সুতরাং নিশ্চিত হয়ে নিন যেRewriteCondনিয়মের গুলি চালানো বন্ধ করার জন্য অতিরিক্ত যোগ করে আপনি এই লুপটি শেষ করেছেন ।.htaccessসুস্পষ্টভাবে মাল্টি-লেভেল রুলসেটগুলি ব্যবহার করার উদ্দেশ্যে না নিলে যে কোনও নিম্ন স্তরের পুনর্লিখনের রোলসেটগুলি মুছুন ।এটি নিশ্চিত করে নিন যে পরীক্ষার ধরণগুলির একটি সেট বিরুদ্ধে বৈধ সিনট্যাক্স কিনা এবং পরীক্ষার ইউআরআইয়ের সম্পূর্ণ পরিসীমা নিয়ে আপনি যা ইচ্ছা তেমন করে তা নিশ্চিত করার জন্য প্রতিটি রেজিএক্সএক্সের বাক্য গঠনটি সঠিক কিনা Make আরও তথ্যের জন্য নীচের উত্তর দেখুন ।
পরীক্ষার ডিরেক্টরিতে ক্রমবর্ধমানভাবে আপনার বিধিগুলি তৈরি করুন। আপনি
.htaccessআপনার প্রধান নিয়মগুলি স্ক্রু না করে এবং আপনার সাইটের কাজ বন্ধ না করেই একটি পৃথক পরীক্ষা ডিরেক্টরি (ট্রি) এবং ডিবাগ রোলসেটগুলি সেটআপ করতে "পাথ বৈশিষ্ট্যের গভীরতম ফাইলটি কার্যকর করুন" ব্যবহার করতে পারেন । আপনাকে একবারে এগুলি যুক্ত করতে হবে কারণ পৃথক নিয়মে ব্যর্থতা স্থানীয়করণের একমাত্র উপায়।সার্ভার এবং পরিবেশের ভেরিয়েবলগুলি ডাম্প আউট করতে একটি ডামি স্ক্রিপ্ট স্টাব ব্যবহার করুন । ( তালিকাভুক্তি দেখুন 2 ) যদি আপনার অ্যাপ্লিকেশনটি ব্যবহার করে, বলুন,
blog/index.phpতবে আপনিtest/blog/index.phpএটিকে অনুলিপি করতে পারেন এবংtestসাব - ডিরেক্টরিতে আপনার ব্লগের নিয়মগুলি পরীক্ষা করতে এটি ব্যবহার করতে পারেন । প্রতিস্থাপনের স্ট্রিং সঠিকভাবে ব্যাখ্যায় পুনর্লিখন ইঞ্জিন যেমন, নিশ্চিত করতে আপনি পরিবেশের ভেরিয়েবলগুলিও ব্যবহার করতে পারেনRewriteRule ^(.*) - [E=TEST0:%{DOCUMENT_ROOT}/blog/html_cache/$1.html]এবং phpinfo ডাম্পে এই REDIRECT_ * ভেরিয়েবলগুলি সন্ধান করুন। বিটিডাব্লু, আমি এটি ব্যবহার করেছি এবং আমার সাইটে আবিষ্কার করেছি যা এর
%{ENV:DOCUMENT_ROOT_REAL}পরিবর্তে আমাকে ব্যবহার করতে হয়েছিল। পুনঃনির্দেশকারী লুপিংয়ের ক্ষেত্রে REDIRECT_REDIRECT_ * ভেরিয়েবলগুলি পূর্ববর্তী পাসের তালিকা করে। ইত্যাদি ..আপনার ব্রাউজার ক্যাশে ভুল 301 পুনর্নির্দেশগুলি দ্বারা কামড় না পেয়েছে তা নিশ্চিত করুন । দেখুন নিচের উত্তর । এর জন্য আমার উলরিখ পালহাকে ধন্যবাদ ।
পুনর্লিখন ইঞ্জিনটি একটি
.htaccessপ্রসঙ্গের মধ্যে ক্যাসকেড বিধিগুলির প্রতি সংবেদনশীল বলে মনে হয় , (এটি হ'লRewriteRuleপ্রতিস্থাপনের ফলাফল এবং এটি আরও বিধিগুলির পরেও পড়ে), কারণ আমি অভ্যন্তরীণ সাব-অনুরোধগুলির সাথে বাগগুলি পেয়েছি (1) , এবং ভুল প্যাথটিএনপিও প্রসেসিং যা প্রায়শই পারে [এনএস], [এল] এবং [পিটি] পতাকা ব্যবহার দ্বারা প্রতিরোধ করা হবে।
আর কোন মন্তব্য বা পরামর্শ?
তালিকা 1 - phpinfo
<?php phpinfo(INFO_ENVIRONMENT|INFO_VARIABLES);