दिलचस्प पोस्ट
पुनः लोड पर टुकड़े ताज़ा करें Django टेम्पलेट में इंडेक्स द्वारा संदर्भ सूची आइटम? कौन से दो पूरक पूर्णांक आपरेशनों को इनपुट में उच्च बिट्स को शून्य किए बिना इस्तेमाल किया जा सकता है, यदि परिणाम का केवल कम हिस्सा ही चाहता है? PostgreSQL 9.3 का उपयोग करके डायनामिक धुरी क्वेरी अधिकतम http हैडर मानों पर? dyld: पुस्तकालय लोड नहीं किया गया … कारण: छवि लोड नहीं की गई C ++ 0x कब समाप्त हो जाएंगे? जावास्क्रिप्ट MySQL के साथ कनेक्ट कर सकते हैं? MySQL विदेशी कुंजी नल की अनुमति के लिए? पैन और ज़ूम छवि UI और GameObjects पर क्लिक / स्पर्श ईवेंट का पता लगाने के लिए उत्तरदायी चौड़ाई के लिए एक यूट्यूब वीडियो को कम करें गिट चेरी लेने और डेटामोडेल अखंडता जावा RegEx मेटा वर्ण (।) और साधारण डॉट? उच्च गुणवत्ता वाली छवियों के साथ कैनवास निर्यात करने का सर्वोत्तम अभ्यास क्या है?

RewriteRule अंतिम झंडा काम नहीं कर रहा है?

php_flag display_errors 1 php_value auto_prepend_file init.php RewriteEngine on RewriteRule ^$ /id/authenticate [R] RewriteRule ^login_openid$ /id/login_openid.php [QSA,L] RewriteRule ^authenticate$ /id/authenticate.php [QSA,L] RewriteRule ^facebook$ /id/facebook.php [QSA,L] RewriteRule ^createfromopenid$ /id/createfromopenid.php [QSA,L] RewriteRule .* - [L,R=403] 

यह मेरी .htaccess फ़ाइल है सर्वर कॉन्फ़िगर में मेरे पास AllowOVerride all

अगर मैं यूआरएल http://mydomain.com/id/authenticate अनुरोध करता हूं तो मुझे 403 त्रुटि मिलती है। अगर मैं अंतिम नियम निकालता हूं, तो यह काम करता है क्या [L] फ्लोट होने से किसी भी अन्य नियम को रोकना चाहिए?

संपादित करें:

मेरी htaccess फ़ाइल सबफ़ोल्डर "आईडी" में है, इसलिए नियम काम करते हैं।

Solutions Collecting From Web of "RewriteRule अंतिम झंडा काम नहीं कर रहा है?"

[L] नियम ठीक काम करता है – आपको नहीं पता कि यह वास्तव में कैसे काम करता है

जब अपाचे [L] ध्वज और नियम मैचों (पुन: लिखना होता है) को देखता है, तो अपाचे अगले पुनरावृत्ति के लिए जाएंगे और शीर्ष पर फिर से सभी नियमों का मिलान करना शुरू कर देंगे। [L] फ्लैग का अर्थ है " इस पुनरावृत्ति में नीचे दिए गए नियमों पर कार्रवाई नहीं करें "

हां, अपाचे दस्तावेज़ीकरण इस पर 100% स्पष्ट नहीं है (जिसका अर्थ है कि इसमें सुधार किया जा सकता है), लेकिन अंततः इसे समझने के लिए पर्याप्त जानकारी प्रदान करता है।


अपाचे कुछ परिस्थितियों में फिर से लिखना चक्र रोक देगा:

  1. कोई भी नियम मिलान नहीं हुआ (कोई पुन: लिखना नहीं हुआ);

  2. "अब बाहर निकलें" नियम मिलान किया है (उदाहरण के लिए RewriteRule .* - [L] );

  3. पुनर्लेखन तब होता है, लेकिन इनपुट यूआरएल और अंतिम यूआरएल एक ही होते हैं (2-3 रेवियन पर होता है जब "बुरी तरह" लिखित नियम उसी यूआरएल को उसी यूआरएल पर लिखते हैं।

    उदाहरण के लिए RewriteRule (.*) /index.php?page=$1 [L] :

    • /hello => /index.php?page=hello
    • अगले चलन पर इसे पुनः लिखना होगा /index.php => /index.php?page=index.php
    • और 3 वें स्थान पर यह /index.php => /index.php?page=index.php .. जो अब कोई मतलब नहीं है);
  4. फिर से लिखना चलना सीमा (डिफ़ॉल्ट रूप से = 10) पर पहुंच गई है – यदि आपने अनंत पुनर्लेखन चक्र दर्ज किया है (मान LimitInternalRecursion डायरेक्टिव द्वारा नियंत्रित है)


सभी aforementioned जानकारी के साथ मैं यह कह सकता हूँ कि आपके मौजूदा नियम अपेक्षित रूप से काम करते हैं इसका अर्थ है कि आपको तर्क को बदलना होगा और अंतिम नियम से छुटकारा पड़ेगा (शायद माता-पिता .htaccess में इस क्षण को संभालो .. या इसे अलग ढंग से संभालना – यह सब निर्भर करता है कि आपका आवेदन कैसे बनाया गया है, मैं जंगली अनुमान नहीं करना चाहता हूं )।

इसे अपने cath all नियमों के सामने रखो।

 RewriteCond %{ENV:REDIRECT_STATUS} !=200 

समस्या यह है कि [एल] ध्वज पर एक बार संसाधित हो जाने के बाद, सभी अगले रिरेइट नियम को वास्तव में अनदेखा कर दिया जाता है, हालांकि, फ़ाइल को नए यूआरएल के साथ शुरू होने से पुन: संसाधित किया जाता है।

अगर इस फाइल को पहले से ही पुनर्निर्देशित किया गया था तो यह जादू स्थिति catch all को catch all प्रक्रिया नहीं करेगी।

पुनश्च: अगर यह काम नहीं कर रहा है, तो आपको इस शर्त को थोड़ी मात्रा में बदलना होगा: 200 !=200 , ^. , ^$
जाहिरा तौर पर चर को रीडायरेक्ट के लिए 200 सेट किया जाता है, लेकिन अन्य पृष्ठों (त्रुटि और सामान) इसे कुछ मान पर सेट करते हैं। अब इसका मतलब है कि आप या तो जांच लें कि यह is empty , is not empty , is 200 या is not 200 , जो कि आपको क्या चाहिए।