Mod_rewrite परिचय और धोखा शीट – त्वरित संदर्भ

प्रकटीकरण: आपका समर्थन साइट को चालू रखने में मदद करता है! हम इस पृष्ठ पर हमारे द्वारा सुझाई गई कुछ सेवाओं के लिए एक रेफरल शुल्क कमाते हैं.


mod_rewrite अपाचे वेब सर्वर सॉफ्टवेयर का हिस्सा है जो आपके वेब होस्ट के कंप्यूटर पर चलता है। यह एक URL को गतिशील रूप से परिवर्तित करने, या “फिर से लिखने” की अनुमति देता है।

यदि आप वर्डप्रेस का उपयोग “सुंदर” परमिटलिंक्स के साथ स्विच करते हैं, तो आप mod_rewrite देखेंगे। डिफ़ॉल्ट रूप से, सभी वर्डप्रेस पृष्ठों को एक यूआरएल का उपयोग करके लोड किया जाता है जिसमें एक आईडी नंबर होता है, और संभवतः अन्य चर जो वर्डप्रेस को लोड करने के लिए बताते हैं। लेकिन जब बहुत से पेर्मलिंक सक्षम होते हैं, mod_rewrite नियम उन बदसूरत चर को शब्दों में बदलते हैं। हम कभी-कभी परिणामी URL को “क्लीन” कहते हैं।

Mod_rewrite के साथ फिर से लिखना अनिवार्य रूप से एक URL को गंदे से मक्खी पर साफ करने के लिए अनुवाद करने की एक प्रक्रिया है। आगंतुक एड्रेस एड्रेस बार में URL परिवर्तन कभी नहीं देखता है, क्योंकि आगंतुक के ब्राउज़र में कुछ भी भेजे जाने से पहले अपाचे द्वारा प्रसंस्करण को नियंत्रित किया जाता है।.

Mod_rewrite या साफ URL का उपयोग किए बिना वेबसाइट चलाना पूरी तरह से संभव है। लेकिन यहाँ ज्यादातर लोग इसका उपयोग क्यों करते हैं:

  • URL को मनुष्यों के लिए पढ़ना आसान बनाते हैं। “सुंदर” URL अधिक यादगार हैं, टाइप करना आसान है, और जोर से पढ़ना आसान है.
  • खोज इंजनों की व्याख्या के लिए URL को आसान बनाने के लिए। एक सुंदर URL खोज इंजन को बताता है कि पृष्ठ क्या है, लेकिन आईडी नंबर और चर का एक गड़बड़ी नहीं करता है। खोज इंजन शब्दार्थ से प्यार करते हैं, इसलिए URL को फिर से लिखना यह सुनिश्चित करने में मदद करता है कि पृष्ठ को सही ढंग से वर्गीकृत और अनुक्रमित किया गया है.
  • एक फ़ाइल या पथ से दूसरे पर पुनर्निर्देशित अस्थायी रूप से बनाने के लिए.

Mod_rewrite नियम बनाना

यदि आप अपाचे का उपयोग करते हैं, तो आपको अपने वेब होस्ट से अपने खाते में http.conf फ़ाइल में mod_rewrite को सक्षम करने के लिए कहना चाहिए। कई मामलों में, mod_rewrite डिफ़ॉल्ट रूप से सक्षम होता है.

इसके बाद, आपको अपने होस्टिंग खाते के मूल निर्देशिका में एक .htaccess फ़ाइल बनाने की आवश्यकता होगी। .Htaccess फ़ाइल रूट डायरेक्टरी और उसके नीचे मौजूद सभी फाइलों को नियंत्रित करती है, जब तक कि आप इसे .htaccess फ़ाइल के साथ ओवरराइड नहीं करते हैं, फ़ोल्डर ट्री को नीचे कर देती है। यदि आपके पास पहले से एक .htaccess फ़ाइल है, तो आगे बढ़ने से पहले एक बैकअप प्रतिलिपि बनाएँ.

पुनर्लेखन नियमों के दो भाग हैं। पहली पंक्ति अपाचे में पुनर्लेखन इंजन निर्देश को सक्रिय करती है। (# से शुरू होने वाली लाइन एक टिप्पणी है, जिसे अनदेखा किया जाता है।) mod_rewrite स्टेटमेंट का दूसरा भाग रीराइट इंजन को बताता है कि URL को कैसे रूपांतरित किया जाना चाहिए। इसलिए हम स्थिति को बताते हैं, और फिर हम अपाचे को बताते हैं कि क्या करना है। यहाँ एक नियम का एक उदाहरण है जो आगंतुक को एक फ़ाइल से दूसरी फ़ाइल पर पुनर्निर्देशित करता है.

# रिवाइटरिंग पर स्विच करें
पर RewriteEngine
# Newname.html में oldname.html ट्रांसफ़ॉर्म करें
RewriteRule ^ oldname.html $ newname.html

यह नियम oldname.html (स्थिति) नामक फ़ाइल के लिए जाँच करता है। यदि यह एक मैच पाता है, तो यह गतिशील रूप से newname.html के साथ बदल देता है। अंतिम उपयोगकर्ता oldname.html की सामग्री को देखता है, लेकिन उनके URL URL बार में newname.html देखता है। यदि mod_rewrite ने oldname.html से मेल नहीं खाया है, तो नियम की अनदेखी की जाएगी.

पैटर्न के लिए खोज रहे हैं

प्रत्येक URL के लिए एक नियम बनाने में बहुत समय लगेगा, इसलिए हमें नियमित अभिव्यक्ति का उपयोग करने की आवश्यकता है। नियमित अभिव्यक्ति पैटर्न की तलाश करते हैं और स्ट्रिंग के एक हिस्से को दूसरे के साथ बदलते हैं। इस उदाहरण को लें:

# रिवाइटरिंग पर स्विच करें
पर RewriteEngine
# लेखक / NAME को लेखक में बदल दें। php? Id = NAME
RewriteRule ^ लेखक / ([a-z] +) /? $ Author.php? Id = $ 1 [L]

इसे तोड़कर, यहाँ की स्थिति ^ लेखक / ([a-z] +) /? $ काम करता है:

  • ^ नियम की शुरुआत है
  • लेखक / वह स्ट्रिंग है जिसे हम मूल URL में देख रहे हैं
  • ((ए-जेड] +) एक वाइल्डकार्ड है – यह उन शब्दों की तलाश करता है जो लेखक के बाद दिखाई देते हैं /
  • /? URL के अंत में स्लैश जोड़ता है
  • $ दशा के अंत के निशान.

और यहां बताया गया है कि लेखक .php? Id = $ 1 एक्शन काम करता है:

  • author.php? id = वह स्ट्रिंग है जिसे हम लिखना चाहते हैं
  • $ 1 उन शब्दों के लिए एक प्लेसहोल्डर है जो हमने ऊपर की स्थिति में पाए हैं.

नियम के अंत में, [L] एक ध्वज है जो अपाचे को बताता है कि यदि यह संसाधित किया जाता है तो किसी भी अधिक नियम को लागू करने से रोकना चाहिए.

यह mod_rewrite क्या कर सकता है इसका सिर्फ एक बहुत ही मूल उदाहरण है। [A-z] लिखने के बजाय, हम अक्षर x, y या z, या (y | n) को y या n खोजने के लिए [xyz] का उपयोग कर सकते हैं। आप नीचे दिए गए संसाधनों में नियमित अभिव्यक्ति सिंटैक्स के लिए अधिक संपूर्ण संदर्भ पा सकते हैं.

रेव्रीरुले फ्लैग

ऊपर के उदाहरण में, हमने नियम के अंत में एक ध्वज, [L] जोड़ा। झंडे वैकल्पिक हैं। उन्हें पंक्ति के अंत में वर्ग कोष्ठक के एक सेट में शामिल किया जाना चाहिए, और यदि आप कई झंडे का उपयोग करना चाहते हैं, तो आपको उनके बीच अल्पविराम लगाना होगा.

झंडे पूर्ण में या छोटे संस्करण के रूप में लिखे जा सकते हैं। जबकि छोटे झंडे क्षेत्र टाइप करना आसान है, लंबे झंडे का उपयोग करना एक अच्छा विचार है यदि आप अपने कोड को पढ़ना आसान बनाना चाहते हैं.

  • बी: गैर-अल्फ़ान्यूमेरिक वर्णों से बच जाता है; पर सेट करने के लिए AllowEncodedSlashes की आवश्यकता हो सकती है.
  • सी या चेन: अपने .htaccess फ़ाइल में अगले नियम के लिए नियम को जंजीर; यदि मैच में पहला परिणाम आता है तो दूसरा केवल निष्पादित होता है.
  • CO या कुकी: जब कोई नियम मेल खाता है, तो कुकी बनाएँ; अतिरिक्त विशेषताओं की आवश्यकता है.
  • DPI या त्यागपत्र: लिखित URL में PATH_INFO को शामिल करता है.
  • ई या एनव: एक पर्यावरण चर सेट करता है.
  • END: L के समान, यह किसी भी अधिक पुनर्लेखन प्रक्रिया को रोकता है.
  • एफ या निषिद्ध: नियम की प्रतिक्रिया के साथ 403 निषिद्ध स्थिति लौटाता है.
  • जी या चला गया: शासन की प्रतिक्रिया के साथ 410 गॉन का दर्जा देता है.
  • एच या हैंडलर: एक विशेष हैंडलर का उपयोग करने के लिए नियम को एक चर के रूप में निर्दिष्ट करता है.
  • L या अंतिम: रूल प्रोसेसिंग को रोकता है.
  • एन या अगला: इनपुट के रूप में नियम के परिणाम का उपयोग करके, नियमों का वर्तमान सेट फिर से शुरू करता है.
  • NC या nocase: नियम के लिए केस सेंसिटिविटी को स्विच ऑफ करता है.
  • NE या noescape: विशेष वर्णों को उनके समतुल्य हेक्स कोड में परिवर्तित करता है.
  • NS या nosubreq: पुनर्लेखन को सब-चेस्ट पर लागू होने से रोकता है.
  • पी या प्रॉक्सी: नियम के परिणाम को mod_proxy को धकेलता है, और किसी भी शेष नियमों को अनदेखा करता है.
  • PT या passthrough: एक फ़ाइल पथ को URL में परिवर्तित करता है.
  • QSA या qsappend: क्वेरी स्ट्रिंग को एक नए के साथ जोड़ता है.
  • QSD या qsdiscard: पुराने क्वेरी स्ट्रिंग को हटा देता है और उसे बदल देता है.
  • QSL या qslast: स्ट्रिंग में अंतिम प्रश्न चिह्न पर एक क्वेरी स्ट्रिंग को विभाजित करता है.
  • R या पुनर्निर्देशित: एक HTTP पुनर्निर्देशन जारी करें.
  • एस या स्किप: कई नियमों को छोड़ देता है; को परिभाषित किया जाना चाहिए [S = n], जहां n को छोड़ने के लिए नियमों की संख्या है.
  • T या प्रकार: नियम प्रतिक्रिया के MIME प्रकार को सेट करता है.

वेब होस्टिंग कूपन

Mod_rewrite होस्टिंग पर एक महान सौदे की तलाश है?
A2 होस्टिंग ने हमारे हालिया गति परीक्षणों में # 1 स्कोर किया। आप वर्तमान में उनके डेवलपर के अनुकूल योजनाओं पर 50% तक बचा सकते हैं। इस छूट लिंक का उपयोग करें
सौदा पाने के लिए.

सर्वर चर

नीचे दी गई सूची में कई सर्वर चर हैं, जिनमें से कुछ आप mod_rewrite के साथ उपयोग कर पाएंगे। सभी चर सभी सर्वरों द्वारा समर्थित नहीं हैं, और समान रूप से, आप उन सर्वर चर का उपयोग करने में सक्षम हो सकते हैं जो यहां सूचीबद्ध नहीं हैं.

यदि आप पहले से ही HTTP हेडर के बारे में जानते हैं, तो इस सूची के कई सर्वर वैरिएबल आपको परिचित होंगे, लेकिन कुछ ऐसे भी हैं जो विशेष रूप से mod_rewrite के साथ उपयोग के लिए प्रदान किए जाते हैं.

  • API_VERSION: एपीआई संस्करण की तारीख.
  • AUTH_TYPE: उपप्रकार; NONE, BASIC, DIGEST या FORM लौटाता है.
  • CONN_REMOTE_ADDR: सहकर्मी IP पता.
  • CONTEXT_DOCUMENT_ROOT: Apache में डायरेक्टरी मैपिंग के बारे में जानकारी.
  • CONTEXT_PREFIX: Apache में डायरेक्टरी मैपिंग के बारे में जानकारी.
  • DOCUMENT_ROOT: दस्तावेज़ के लिए पूर्ण पथ.
  • हैंडलर: हैंडलर नाम.
  • HTTP_ACCEPT: HTTP अनुरोध हेडर में मौजूद होने पर HTTP हेडर स्वीकार करता है.
  • HTTP_COOKIE: कुकी, यदि HTTP अनुरोध हेडर में मौजूद है.
  • HTTP_FORWARDED: वास्तविक मार्ग, यदि HTTP अनुरोध शीर्ष लेख में मौजूद है.
  • HTTP_HOST: वर्तमान सर्वर, यदि HTTP अनुरोध हेडर में मौजूद है.
  • HTTP_PROXY_CONNECTION: HTTP प्रॉक्सी हेडर में मौजूद होने पर HTTP प्रॉक्सी पथ.
  • HTTP_REFERER: संदर्भित पृष्ठ URL.
  • HTTP_USER_AGENT: वह उपयोगकर्ता एजेंट जिसका उपयोग पृष्ठ तक पहुंचने के लिए किया गया था.
  • HTTP2: क्या कनेक्शन HTTP2 का उपयोग कर रहा है; रिटर्न ऑन या ऑफ.
  • HTTPS: क्या कनेक्शन HTTPS का उपयोग कर रहा है; रिटर्न ऑन या ऑफ.
  • IPV6: क्या कनेक्शन IPVS का उपयोग कर रहा है; रिटर्न ऑन या ऑफ.
  • IS_SUBREQ: क्या अनुरोध एक सबरेक्वेस्ट है; सही या गलत.
  • PATH_INFO: पथ डेटा जो फ़ाइल नाम का अनुसरण करता है.
  • QUERY_STRING: प्रश्न चिह्न के बाद URL में वर्ण.
  • REMOTE_ADDR: उपयोगकर्ता का IP.
  • REMOTE_HOST: उपयोगकर्ता का पूरी तरह से योग्य डोमेन नाम.
  • REMOTE_USER: प्रमाणित उपयोगकर्ता का उपयोगकर्ता नाम.
  • REMOTE_IDENT: प्रमाणित उपयोगकर्ता का उपयोगकर्ता नाम, पहचान द्वारा लौटाया गया.
  • REQUEST_FILENAME: अनुरोध में फ़ाइल या स्क्रिप्ट का स्थानीय पथ.
  • REQUEST_METHOD: अनुरोध विधि; HEAD, PUT, GET या POST.
  • REQUEST_SCHEME: अनुरोध URI में योजना.
  • REQUEST_URI: अनुरोध URI, एक पथ के रूप में.
  • SCRIPT_FILENAME: स्क्रिप्ट का पूर्ण पथ.
  • SCRIPT_GROUP: स्क्रिप्ट समूह का नाम.
  • SCRIPT_USER: वह उपयोगकर्ता जो स्क्रिप्ट का स्वामी है.
  • SERVER_ADDR: .htaccess फ़ाइल को सर्वर पर संग्रहीत किया जाता है.
  • SERVER_ADMIN: सर्वर व्यवस्थापक, जैसा कि Apache में कॉन्फ़िगर किया गया है.
  • SERVER_NAME: सर्वर नाम, जैसा कि Apache में कॉन्फ़िगर किया गया है.
  • SERVER_PORT: अनुरोध के लिए भेजा गया पोर्ट नंबर.
  • SERVER_PROTOCOL: अनुरोध का प्रोटोकॉल और संशोधन.
  • SERVER_SIGNATURE: सर्वर संस्करण और होस्ट नाम.
  • SERVER_SOFTWARE: सर्वर के लिए आईडी स्ट्रिंग.
  • THE_REQUEST: इसकी संपूर्णता में अनुरोध.
  • समय: प्रारूप YYYYMMDDHHMMSS में दिनांक और समय.
  • TIME_DAY: वर्तमान दिन.
  • TIME_HOUR: वर्तमान समय.
  • TIME_MIN: वर्तमान मिनट.
  • TIME_MON: वर्तमान महीना.
  • TIME_SEC: वर्तमान दूसरा.
  • TIME_WDAY: वर्तमान दिन, एक नंबर के रूप में लौटा (रविवार के लिए 0 से शुरू).
  • TIME_YEAR: वर्तमान वर्ष.

साधन

  • एक शुरुआती मार्गदर्शक Mod_rewrite के लिए: यह गाइड 2004 से है, लेकिन mod_rewrite के सिद्धांतों में एक अच्छी ग्राउंडिंग प्रदान करता है.
  • शुरुआती के लिए यूआरएल रिवाइटिंग: शुरुआती और मध्यवर्ती उपयोगकर्ताओं के लिए एक व्यापक गाइड.
  • अपाचे रिवाइज़ चीटशीट: एक धोखा पत्रक का एक HTML संस्करण जो मूल रूप से iLoveJackDaniels.com पर प्रकाशित हुआ है.
  • उन्नत नियमित अभिव्यक्तियों का परिचय: इस गाइड के साथ नियमित अभिव्यक्ति के अपने ज्ञान का विकास.
  • RegEx पाल: अपनी साइट पर तैनात करने से पहले अपने नियमित अभिव्यक्ति सिंटैक्स की जाँच करें.

सारांश

mod_rewrite अपाचे व्यवहार को नियंत्रित करने के लिए एक उपयोगी और शक्तिशाली तरीका है। आप mod_rewrite के साथ कई काम कर सकते हैं जिन्हें हमने यहां कवर नहीं किया है। इनमें पुनर्निर्देशन, छवि हॉटलिंकिंग को रोकना, आपकी साइट से विशेष आगंतुकों को प्रतिबंधित करना, और बहुत कुछ शामिल हैं। Mod_rewrite का लाभ उठाने का सबसे अच्छा तरीका नियमित अभिव्यक्ति के बारे में सीखना है.

आगे पढ़ना और संसाधन

हमारे पास वेब विकास से संबंधित अधिक गाइड, ट्यूटोरियल और इन्फोग्राफिक्स हैं:

  • PHP परिचय और संसाधन: वेब पर उपयोग की जाने वाली सबसे लोकप्रिय बैकएंड भाषा के बारे में सभी जानें.
  • इंटरनेट सॉकेट के साथ नेटवर्क प्रोग्रामिंग: इंटरनेट पर सभी नेटवर्किंग के बारे में जानें.
  • MySQL परिचय और संसाधन: MySQL इंटरनेट पर सबसे लोकप्रिय डेटाबेस में से एक है.

राइट सीएमएस कैसे चुनें

निश्चित नहीं है कि आप किस सीएमएस का उपयोग करना चाहते हैं? हमारे लेख देखें, सही सीएमएस कैसे चुनें.

वेबमास्टर उपकरण A-Z की अंतिम सूची
राइट सीएमएस कैसे चुनें

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map