অ্যাপাচি মোড_উরাইট কীভাবে ডিবাগ করবেন


171

মোড_আরাইটের সাথে আমার দুটি প্রধান সমস্যা আছে:

1) আমার অবৈধ নিয়ম থাকলে কোনও অর্থবহ ত্রুটি নেই

এখানে চিত্র বর্ণনা লিখুন

2) প্রতিটি পরিবর্তনকে বিশ্বস্ততার সাথে পরীক্ষা করতে, আমাকে ক্রোমের ক্যাশে মুছতে হবে। এটি রকেট বিজ্ঞান নয়, তবে আমি সিটিআরএল + শিফট + মুছুন তারপরে ঠিক আছে ক্লিক করুন, তারপরে উইন্ডোটি বন্ধ করুন এবং পুনরায় লোড করুন।

আমি দেখতে চাই যে কোনও গুরু কোনও দক্ষতার সাথে মোড_উরাইট কোড পরিচালনার জন্য তাদের গোপনীয়তাগুলি ভাগ করতে রাজি আছেন কিনা।


1
PUK দেখুন stackoverflow.com/questions/9153262/... যেখানে আমি stanbdard ঠাট কিছু আলোচনা।
টেরি

উত্তর:


283

একটি কৌশল পুনর্লিখন লগ চালু করা হয়। এটি চালু করুন, আপনার Apache প্রধান কনফিগ অথবা বর্তমান ভার্চুয়াল হোস্ট ফাইল (এই লাইন চেষ্টা করে দেখতে না.htaccess):

RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3

যেহেতু অ্যাপাচি httpd ২.৪ মোড_উরাইট পুনর্নির্মাণ এবং পুনর্লিখন লোগলভেল নির্দেশিকা সম্পূর্ণ নতুন প্রতি মডিউল লগিং কনফিগারেশন দ্বারা প্রতিস্থাপিত হয়েছে।

LogLevel alert rewrite:trace6

81
আপনি এটি .htaccess রাখতে পারবেন না। আপনাকে এটি ভার্চুয়ালহস্ট কনফিগারেশনে রাখতে হবে।
আটটিলা সেজেরেমি

7
আপনার RewriteEngine Onসেখানে বিভাগটিও থাকতে হবে কারণ আপনি যদি কেবলমাত্র এটি .htaccessফাইলটিতে (যেমনটি করেছিলেন) সক্ষম করে রাখেন তবে কিছুই লগ হবে না।
chacham15

12
অ্যাপাচি ২.৪-এ লগ ফাইলটি কোথায় অবস্থিত?
চার্লস জন থম্পসন III

4
প্রাসঙ্গিক ত্রুটি লগতে আপনি 2.4 লগ আইটেমগুলি খুঁজে পাবেন। এটি আপনার কনফিগারেশনের উপর নির্ভর করতে পারে তবে ডিফল্ট ডেবিয়ান / উবুন্টু সেটআপগুলি সেগুলিকে /var/log/apache2/error.log এ থাকতে পারে
জোশিয়ায়

10
প্রো টিপ: আপনার পুনর্লিখন লগিং বন্ধ মনে রাখবেন। যদি আপনি ভুলে যান তবে আপনি আপনার হার্ড ডিস্কটি মোটামুটি তত্ক্ষণাত্ পূরণ করবেন, বিশেষত একটি প্রোডাকশন সার্ভারে।
জন হান্ট

132

বেন দ্বারা উল্লিখিত লগ রাইরাইটের নির্দেশিকা অ্যাপাচি ২.৪-তে আর উপলভ্য নয়। পরিবর্তে আপনার লগলিভেল নির্দেশিকা ব্যবহার করা উচিত। যেমন

LogLevel alert rewrite:trace6

Http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging দেখুন


22
এর সাথে লগ ফাইলটি কোথায় যুক্ত?
চার্লস জন থম্পসন III

8
@ চারলেস জন থমসসনআইআইআই - লগফাইলে ত্রুটিযুক্ত লগ হয় (ত্রুটি-লোগ নির্দেশিকা দ্বারা নির্দিষ্ট)) প্রতি দস্তাবেজগুলিতে, আপনি tail -f error_log|fgrep '[rewrite:'
গ্রেপ


1
আমি নিশ্চিত করা AllowOverrideছিল যে সেট করা হয়েছিল All!
মাইকেল 4

25

বেসিক ইউআরএল রেজোলিউশনের জন্য, ম্যানুয়াল ব্রাউজারের পরিবর্তে কমান্ড লাইন ফ্যাচারটি পছন্দ মতো wgetবা curlপরীক্ষার জন্য ব্যবহার করুন। তারপরে আপনাকে কোনও ক্যাশে সাফ করতে হবে না; আপনার পরীক্ষার ফেচগুলি পুনরায় চালানোর জন্য ঠিক উপরে তীর এবং শেলটি প্রবেশ করুন।


14
আর একটি কৌশলটি হল ক্রোম "পর্ন মোড" (সিটিএল + শিফট + এন) ব্যবহার করা। আপনি উইন্ডোটি বন্ধ করার সময়, কোনও ক্যাশেড সেশন প্রসঙ্গটি ট্র্যাশ করা হবে।
টেরি

আমি মনে করি ফায়ারফক্সের "ব্যক্তিগত অধিবেশন" ব্রাউজিংও রয়েছে। তবে আপনি কি এই প্রসঙ্গটি পৃথক উইন্ডো অনুসারে বলছেন (সুতরাং আপনি ক্রোম বন্ধ করছেন না?)
কাজ

2
আফাইক, ক্রোম এবং এফএফ পৃথক যে এফএফ একক প্রক্রিয়া হিসাবে চলে যা প্রাইভেট মোডে থাকে বা না not ক্রোমের সাহায্যে প্রতিটি ট্যাব বা উইন্ডো পৃথক প্রক্রিয়া হিসাবে চলবে এবং ব্যক্তিগত মোডে পৃথকভাবে হতে পারে; একটি ব্যক্তিগত উইন্ডো / ট্যাব বন্ধ করুন এবং এটি প্রসঙ্গটি ট্র্যাশ করা হবে।
টেরি

1
এফএফের জন্য প্রাইভেটটাব অ্যাডন জিনিসটি করে। প্রতিটি ট্যাব স্বতন্ত্রভাবে কাজ করে।
জাভিদ

এই পদ্ধতিটি পুনর্নির্দেশগুলিও দেখায়! মেশিন অ্যাপাচি কনফিগারেশন ফাইলটিতে অ্যাক্সেস নেই এমন কারও জন্য দুর্দান্ত।
জিওফ সোয়ায়া

14

আছে htaccess পরীক্ষক

এটি দেখায় যে নির্দিষ্ট URL এর জন্য কোন শর্তগুলি পরীক্ষা করা হয়েছিল, কোনটি মানদণ্ডগুলি পূরণ করেছে এবং কোন বিধিগুলি কার্যকর করা হয়েছে।

যদিও কিছু গ্লিটস রয়েছে বলে মনে হচ্ছে।


2
আমার জন্য এটি কোনও কোড ছাড়াই শেষ লাইনে একটি সবুজ সম্পাদিত নিয়ম দেখিয়েছে।
অ্যান্ডি

@ থমব্রার আপনি আরও নিখুঁত হতে পারেন, দয়া করে? লিঙ্কটি কাজ করে না? নাকি হাতিয়ার? ঠিক কি কাজ করে না? এবং কেন এই প্রশ্নের প্রসঙ্গে প্রাসঙ্গিক?
অ্যান্ডি

1
এটি আমাকে বলে যে ইউআরএলটি আশানুরূপ রূপান্তরিত হচ্ছে ... তবে প্রকৃত সার্ভারে আমি একটি 404 পাচ্ছি
মাইকেল

@ মাইকেল আপনার পরীক্ষার নিয়মটি কি কেবল আপনার কনফিগারেশনে উপস্থিত? মোড_উইরাইট আসলে ইনস্টল এবং সক্রিয়?
অ্যান্ডি

ওভাররাইডগুলি সক্রিয় করা যায়নি
মাইকেল মাইকেল

3

বেনের উত্তরের ভিত্তিতে আপনি লিনাক্সে অ্যাপাচি চালানোর সময় নিম্নলিখিত কাজগুলি করতে পারেন (আমার ক্ষেত্রে ডেবিয়ান)।

প্রথমে পুনর্লিখন-লগ ফাইলটি ফাইল তৈরি করুন

/etc/apache2/mods-availabe/rewrite-log.load

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3

তারপরে প্রবেশ করুন

$ a2enmod পুনর্লিখন-লগ

অনুসরণ করেছে

ap পরিষেবা অ্যাপাচি 2 পুনঃসূচনা

এবং আপনি যখন আপনার পুনর্লিখনের নিয়মগুলি ডিবাগ করে শেষ করেছেন

2 a2dismod পুনর্লিখন-লগ && পরিষেবা অ্যাপাচি 2 পুনঃসূচনা


এটি কার্যকর হয়নি। আমি স্যান্ডিনো @ হিংসা পেয়েছি: do do সুডো সার্ভিস অ্যাপাচি 2 পুনঃসূচনা * ওয়েব সার্ভারটি পুনরায় চালু করা অ্যাপাচি 2 [ব্যর্থ] * অ্যাপাচি 2 কনফিগারেশন ব্যর্থ হয়েছে। কনফিগার পরীক্ষার আউটপুটটি ছিল: এএইচ 600526: /etc/apache2/mods-enabled/rewrite-log.load এর 1 লাইনে সিনট্যাক্স ত্রুটি: অবৈধ কমান্ড 'রিরাইটলগ', সম্ভবত সার্ভার কনফিগারেশনে অন্তর্ভুক্ত নয় এমন একটি মডিউল দ্বারা ভুল বানান বা সংজ্ঞায়িত
স্যান্ডিনো

3
@ সান্দিনো, আপনি কোন অ্যাপাচি সংস্করণটি চালাচ্ছেন? দেখে মনে হচ্ছে এই বাক্য LogLevel warn rewrite:trace8LogLevel info rewrite:trace8
গঠনটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.