यह काम क्यों करता है:
RewriteRule (.+)/$ $1
और यह काम:
RewriteRule (.+)/$ $1 [L] #bla bla bla
लेकिन यह काम नहीं करता है:
RewriteRule (.+)/$ $1 #bla bla bla
यह काम क्यों करता है:
RewriteRule (.+)/$ $1
और यह काम:
RewriteRule (.+)/$ $1 [L] #bla bla bla
लेकिन यह काम नहीं करता है:
RewriteRule (.+)/$ $1 #bla bla bla
जवाबों:
अंतिम नियम काम नहीं करता है क्योंकि टिप्पणियां वास्तव में टिप्पणियां नहीं हैं। Htaccess में टिप्पणियाँ एक (एक पंक्ति की शुरुआत में होनी चाहिए) के साथ शुरू#
होनी चाहिए, और कहीं भी मनमाने ढंग से नहीं।
दूसरे मामले में, निर्देश के #bla bla bla
चौथे पैरामीटर के रूप में व्याख्या की जाती है RewriteRule
, जिसे केवल अनदेखा किया जाता है।
अंतिम स्थिति में, #bla bla bla
एक 3 पैरामीटर के रूप में व्याख्या की जाती है, जो उस RewriteRule
स्थिति में है जहां झंडे चलते हैं, और #bla bla bla
कोई भी झंडे नहीं हैं जो mod_rewrite समझता है जिससे आपको एक त्रुटि मिलती है।
#
लाइन के "प्रारंभ" में होना चाहिए, यह व्हाट्सएप के किसी भी राशि से पहले हो सकता है। । दूसरे शब्दों में, #
एक लाइन पर पहला गैर-व्हाट्सएप चरित्र होना चाहिए। मुझे लगता है कि गलती #
से चरित्र 1 होना चाहिए था, बाएं-सबसे कॉलम में!
अपाचे के कॉन्फ़िग फ़ाइल स्वरूप (जिनमें से .htaccess
फ़ाइलें एक उदाहरण हैं) तकनीकी रूप से इनलाइन टिप्पणी, केवल पूर्ण लाइन टिप्पणियां (यानी एक लाइन का समर्थन नहीं करता शुरुआत एक साथ #
)।
हैश चरित्र "#" से शुरू होने वाली पंक्तियों को टिप्पणी माना जाता है, और इसे अनदेखा किया जाता है। कॉन्फ़िगरेशन निर्देश के बाद टिप्पणियाँ एक पंक्ति में शामिल नहीं हो सकती हैं। - आधिकारिक Apache 2.4 मैनुअल
हालांकि, प्रत्येक मॉड्यूल को अपने निर्देशों के लिए इनपुट पार्स करने के लिए मिलता है, हालांकि यह पसंद करता है - इसलिए यह mod_rewrite
तय करता है कि इसके साथ क्या करना हैRewriteRule
मुझे यकीन नहीं है, लेकिन मेरा अनुमान है कि mod_rewrite
सब कुछ की अनदेखी कर रहा है [flags]
, और #
वास्तव में आवश्यक नहीं है।
हालांकि, सर्वश्रेष्ठ शर्त यह है कि टिप्पणियों को हमेशा अपनी पंक्ति में रखें, क्योंकि जो भी आप टिप्पणी कर रहे हैं वह काम करेगा।