पुनर्लेखन लॉग को सक्षम क्यों नहीं किया जा रहा है।


9

मैं लॉगिंग को फिर से लिखना सक्षम करना चाहता हूं ताकि मैं एक पुनर्लेखन नियम को डीबग कर सकूं लेकिन रेव्रीलॉग निर्देशों को जोड़ने से 500 त्रुटि हो रही है।

संस्करण जानकारी:

Ubuntu 14.04

Server version: Apache/2.4.12 (Ubuntu)
Server built:   Feb  4 2015 14:22:06

की सामग्री .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 5

RewriteBase /

RewriteRule ^/wordpress/wp-content/(.*)$ /wp-content/$1 [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

त्रुटि लॉग में मैं देखता हूं:

/var/www/path.to/wordpress/.htaccess: Invalid command 'RewriteLog', perhaps misspelled or defined by a module not included in the server configuration

जवाबों:


14

लॉगिंग को .htaccessफ़ाइलों में कॉन्फ़िगर नहीं किया जा सकता है यह भूल जाने के अलावा , यह भी अपाचे संस्करण समस्या बन गया। RewriteLog निर्देश को नए संस्करणों में बदल दिया गया है और वर्चुअलाइज कॉन्फ़िगरेशन में निम्नलिखित को जोड़ने के लिए फिर से लिखना शुरू किया गया है:

LogLevel alert rewrite:trace3 (can be increased to trace8)

मैनुअल से:

Mod_rewrite के पुराने संस्करणों से परिचित लोगों को इसमें कोई संदेह नहीं होगा कि वे ReriteLog और RewriteLogLevel निर्देशों की तलाश करेंगे। यह कार्यक्षमता पूरी तरह से ऊपर उल्लिखित नए प्रति-मॉड्यूल लॉगिंग कॉन्फ़िगरेशन द्वारा बदल दी गई है।

त्रुटि लॉग में इन संदेशों को फ़िल्टर करने के लिए आप कुछ ऐसा कर सकते हैं:

tail -f error_log|fgrep '[rewrite:'

आपका प्रश्न मूल रूप से Apache-2.2 के साथ टैग किया गया था ? और मैंने प्रश्न में ही संस्करण की अनदेखी कर दी होगी। अच्छी तरह से देखा गया।
HBruijn

यदि यह किसी को मदद करता है, तो मेरा मुद्दा यह था कि मैं पोर्ट 80 के लिए VHost में लॉगिंग को सक्षम कर रहा था, लेकिन 443 में नहीं। मैं HTTPS का उपयोग कर रहा था, इसलिए मेरा लॉगिंग काम नहीं कर रहा था। मुझे उस बेवकूफ की गलती का पता लगाने में
थोड़ा

मैं जोड़ना चाहूंगा कि आपको mod_log_debugसक्षम होना चाहिए ...
thoni56

4

मैं खुद को दोहराने में मदद नहीं कर सकता:

ज्यादातर लोग जो सर्वरफॉल्ट पर .htaccess का उपयोग करते हैं और इसके बारे में पूछते हैं, उन्हें पहले स्थान पर .htaccess का उपयोग नहीं करना चाहिए क्योंकि यह एक अंतिम-उपयोगकर्ता समाधान है जो कभी भी प्रशासकों के लिए अभिप्रेत नहीं है:

यदि आप httpd मुख्य सर्वर कॉन्फिग फ़ाइल तक पहुँच रखते हैं तो .htaccess फ़ाइलों का पूरी तरह से उपयोग करने से बचना चाहिए । .htaccessफ़ाइलों का उपयोग आपके Apache http सर्वर को धीमा कर देता है। कोई भी निर्देश जिसे आप .htaccess फ़ाइल में शामिल कर सकते हैं, एक डायरेक्टरी ब्लॉक में बेहतर सेट किया गया है, क्योंकि इसमें बेहतर प्रदर्शन के साथ समान प्रभाव होगा।
स्रोत: अपाचे मैनुअल

जाहिरा तौर पर ज्यादातर लोग जो अपने विन्यास प्रकाशित करते हैं, वे कार्गो पंथ प्रोग्रामर को नकल करने के लिए उत्सुक दिखते हैं ।

आपकी समस्या एक प्रमुख उदाहरण है: RewriteLogनिर्देश केवल सर्वर कॉन्फ़िगरेशन या वर्चुअल होस्ट के संदर्भ में मान्य है ...

इसका मतलब है कि यह एक फ़ाइल में अनुमति नहीं है.htaccess !


4
लॉग की तलाश बिल्कुल वही है जो कोई सीखना चाहता है, कॉपी नहीं करना चाहता है। लगता है कि अपाचे ने एक क्लासिक कैच -22 स्थापित किया है: आपको केवल तभी उपयोग करना चाहिए। यदि आप सर्वर रूट तक नहीं पहुंच सकते हैं । लेकिन आप केवल लॉगिंग चालू कर सकते हैं यदि आप सर्वर रूट तक पहुंच सकते हैं । अगर वे आपको .htaccess में यह सब पुनर्लेखन करने देते हैं, तो उन्हें आपको लॉग इन करने देना चाहिए ताकि आप ऐसा कर सकें कि आपको रैंडम कॉपी और पेस्ट / ट्रायल और त्रुटि पर भरोसा न करना पड़े।
मार्क बेरी

5
Wordpress जैसे कुछ एप्लिकेशन .htaccess फ़ाइलों को उत्पन्न करते हैं जिन्हें डीबग करने की आवश्यकता होती है। यहाँ ऐसा ही प्रतीत होता है। .Htaccess फ़ाइल से लॉग इन करना एक तार्किक पहला कदम है जब आप किसी और के असंवेदनशील नियमित भावों को समझने की कोशिश कर रहे हैं।
कीथल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.