क्या आपको .htaccess के प्रभावी होने के लिए फिर से लिखने के लिए अपाचे को फिर से शुरू करना होगा?


99

मैंने अपनी .htaccess फ़ाइलों को उत्पादन सेवर में धकेल दिया है, लेकिन वे काम नहीं करती हैं। क्या पुनः आरंभ अगला चरण होगा, या मुझे कुछ और जाँचना चाहिए।

जवाबों:


94

.Htaccess में परिवर्तन के लिए पुनरारंभ की आवश्यकता नहीं है। कुछ और गलत है।

सुनिश्चित करें कि आपके .htaccess में कथन शामिल है

पर RewriteEngine

अगर यह httpd.conf में भी मौजूद है तो भी इसकी आवश्यकता है। यह भी जाँच लें कि .htaccess httpd प्रक्रिया द्वारा पठनीय है।
Error_log की जांच करें - यदि यह उपयोग किया जा रहा है तो यह आपको .htaccess में किसी भी त्रुटि के बारे में बताएगा । .Htaccess में एक जानबूझकर वाक्यविन्यास त्रुटि डालना यह सुनिश्चित करने के लिए एक अच्छी जांच है कि फ़ाइल का उपयोग किया जा रहा है - आपको उसी निर्देशिका में किसी भी पृष्ठ पर 500 त्रुटि मिलनी चाहिए।

अंत में, आप अपने httpd.conf में निम्नलिखित की तरह कमांड का उपयोग करके एक रीराइट लॉग को सक्षम कर सकते हैं:

रीराइटलाइट "लॉग / रीराइटिटेलॉग"

रिवरलाइटलोगेल 7

इस तरह से बनाई गई लॉग फ़ाइल से आपको पता चल जाएगा कि कौन से नियम फिर से मेल खाते हैं और कैसे उन्हें संभाला गया है।


3
यह थोड़ा आउट-डेटेड है। मैं इसी तरह के मुद्दे पर भाग गया और एक विशेष उपयोग के मामले के लिए अपने पुनर्लेखन को डीबग करना चाहता था। मैंने इस विधि की कोशिश की, लेकिन थोड़ी निराशा और खुदाई के बाद, मुझे पता चला कि समस्या क्या थी। यह अपाचे के पुराने संस्करणों के लिए है। Apache2.4 के लिए> RewriteLog और LogLevel की जगह के साथ ऊपर: LogLevel alert rewrite:trace7अपाचे को फिर से शुरू करने के बाद , आपको त्रुटि में निशान देखना चाहिए। http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
कैस्पर

52

नहीं :

अपाचे वेब पेड़ के अंदर रखी विशेष फाइलों के माध्यम से विन्यास के विकेंद्रीकृत प्रबंधन की अनुमति देता है। विशेष फ़ाइलों को आमतौर पर कहा जाता है .htaccess, लेकिन AccessFileName निर्देश में किसी भी नाम को निर्दिष्ट किया जा सकता है ... चूंकि .htaccess फाइलें हर अनुरोध पर पढ़ी जाती हैं, इन फाइलों में किए गए परिवर्तन तत्काल प्रभाव लेते हैं ...


यदि आपने अपनी साइटों-सक्षम फ़ाइल में 'उपयोगकर्ता की आवश्यकता' के लिए उपयोगकर्ता नाम जोड़ा है, तो मैंने अनुभव किया है कि आपको पुनः आरंभ करने की आवश्यकता है। एक कृपा करने वाला व्यक्ति इसे करता है।
रॉस

18

अपाचे प्रलेखन से: आमतौर पर, समस्या यह है कि AllowOverride को ऐसे सेट नहीं किया जाता है कि आपके कॉन्फ़िगरेशन निर्देशों को सम्मानित किया जा रहा है। सुनिश्चित करें कि आपके पास प्रश्न में फ़ाइल स्कोप के लिए AllowOverride कोई भी प्रभावी नहीं है। इसके लिए एक अच्छा परीक्षण आपकी .htaccess फ़ाइल में कचरा डालना और पुनः लोड करना है। यदि सर्वर त्रुटि उत्पन्न नहीं होती है, तो आपके पास लगभग निश्चित रूप से AllowOverride कोई नहीं है।



2
मैं लॉग में त्रुटि उत्पन्न करने के लिए इस लाइन को ".htaccess" में "<निर्देशिका /> </ निर्देशिका>" जोड़ता हूं। यह कहेंगे "<निर्देशिका यहाँ अनुमति नहीं है" और मुझे पता है कि यह मेरी फ़ाइल पढ़ रहा है।
Mnebuerquo

3

केवल अगर आपने mod_rewrite मॉड्यूल को Apache में नहीं जोड़ा है।

यदि आपको कोई भी अपाचे ".conf" फाइलों को बदलना है तो आपको अपाचे को पुनः आरंभ करना होगा।


2

मेरे पास एक ही मुद्दा है और ऐसा लगता है कि AllowOverride के बारे में PiedPiper पोस्ट सबसे अधिक सहायक थी। "AllowOverride" के लिए अपनी httpd.conf फ़ाइल जांचें और सुनिश्चित करें कि यह सभी पर सेट है।



2

अगर यह संभावित कारणों में शामिल नहीं है तो .htaccess के पुनरारंभ की आवश्यकता नहीं है।

  • AllowOverride सेट नहीं किया जा सकता है जो उपयोगकर्ता httpd.conf के अंदर सेट कर सकता है या सर्वर व्यवस्थापक से संपर्क करना पड़ सकता है।

  • यह htaccess.txt देख नहीं .htaccess होना चाहिए .htaccess का फ़ाइल नाम की जाँच करें यहाँ गाइड के लिए उसे बनाने का तरीका।

  • उपयोग करने की कोशिश करो Options -Indexesया deny allसरल निर्देश की तरह अगर यह या काम नहीं कर रहा है देखने के लिए।

  • स्पष्ट ब्राउज़र कैश हर बार अगर पुनर्निर्देश के लिए नियम या समान है यदि पिछले पुनर्निर्देशित कैश है तो ऐसा प्रतीत होता है जैसे कि चीजें काम नहीं कर रही हैं।


0

आपके .htaccess में क्या है? RewriteRules? जाँचें कि mod_rewrite स्थापित और सक्षम है।

अन्य सामान? AllowOverride को उस निर्देशिका में 'सभी' पर सेट करने का प्रयास करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.