यह "एक प्रश्न पूछें और इसे स्वयं जवाब दें" का एक मामला है, जिसे मैं किसी भी व्यक्ति के लाभ के लिए पोस्ट कर रहा हूं जिसकी एक ही समस्या है।मैं mod_rewrite नियमों को कैसे डिबग कर सकता हूं?
मुझे साझा सर्वर पर एक .htaccess फ़ाइल में mod_rewrite नियमसेट को डीबग करने में कुछ समस्याएं थीं, जहां मैं अपाचे त्रुटि लॉग तक पहुंच भी नहीं पाया।
एक छोटी स्क्रिप्ट कि बस बाहर प्रिंट यह चर querystring है लिखें: मैं एक साफ रास्ता उन्हें डिबग करने के लिए है, जो इस है पाया। जैसे PHP में:
<?='<pre>',htmlentities(print_r($_GET,true)),'</pre>'?>
आपको बस इतना चाहिए।
मान लें कि आप इस स्क्रिप्ट को "show.php" नाम दें और इसे/public_html में रखें। फिर अपनी .htacces फ़ाइल में, अपने नियम-सेट में बात आपको लगता है कि समस्या का कारण हो सकता है की पहचान, और इस नियम सम्मिलित करें:
RewriteRule (.*) /show.php?url=$1 [END]
प्रभाव एक नियमित रूप से एक प्रिंट बयान डालने के समान ही है कार्यक्रम। यह आपको बताएगा कि (ए) आप नियम में उस बिंदु पर पहुंचे, और (बी) वर्तमान पुनर्लेखित यूआरएल क्या है।
यह वास्तविक डीबगिंग टूल के रूप में फ़्लैश नहीं है, लेकिन यह काम पूरा हो जाता है।
यदि आप अपाचे < 2.3.9 का उपयोग कर रहे हैं, तो आपको [END]
के बजाय [L]
का उपयोग करना होगा। उस स्थिति में, कुछ देखने के लिए यह है कि आपके नियमसेट को किसी अन्य चीज़ पर "/show.php" को फिर से लिखने का प्रयास नहीं करना चाहिए। यदि यह एक समस्या है, तो आप इसे बहुत शीर्ष पर इस नियम जोड़कर ठीक कर सकते हैं:
RewriteRule ^show.php$ - [L]
... बस इसे दूर करने के लिए जब आप डिबगिंग प्रक्रिया पूरी कर ली याद!
अधिक उपयोगी तकनीकें हैं [यहां] (http://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess-rewrite-rules)। – Doin