.htaccess का उपयोग करके नियमों और रीडायरेक्ट्स को कॉन्फ़िगर करना

यह .htaccess फ़ाइल एक कॉन्फ़िगरेशन फ़ाइल है जो डायरेक्टरी स्तर पर होती है, जिसे Apache वेब सर्वर द्वारा सपोर्ट किया जाता है। यह आपको वेब सर्वर सेटिंग्स (जैसे कि फीचर्स को सक्षम या अक्षम करना) को किसी विशेष अकाउंट के लिए बदलने की अनुमति देती है, बिना ग्लोबल सर्वर कॉन्फ़िगरेशन को प्रभावित किए।

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

.htaccess फ़ाइल कैसे खोजें

.htaccess फ़ाइल खोजने के लिए:  .htaccess फ़ाइल:  

1. अपने Spaceship अकाउंट में जाएँ >> Hosting Manager को Launchpad में चुनें >> Manage होस्टिंग प्लान के पास >> Files and Storage >> Manage Files वेबसाइट नाम के पास।

2. आपको डोमेन रूट फोल्डर पर रीडायरेक्ट कर दिया जाएगा। 

3.  यदि आपको डोमेन के लिए .htaccess फ़ाइल को एडिट करने की आवश्यकता है, तो डोमेन रूट फोल्डर में .htaccess फ़ाइल को खोजें, उस पर राइट-क्लिक करें, और Edit विकल्प चुनें:


नोट: सुनिश्चित करें कि "Show Hidden Files (dotfiles)" Settings मेनू में सक्षम है:


4. यदि File Manager में .htaccess फ़ाइल नहीं है, तो आप + File बटन से नई फ़ाइल बना सकते हैं:


5. आप अपनी खुद की कॉन्फ़िगरेशन नियम जोड़ने और उन्हें सेव करने के लिए तैयार हैं।
   

अक्सर उपयोग किए जाने वाले .htaccess नियमों की सूची

ब्लॉकिंग 

यह विधि आपको उपयोगकर्ताओं को उनके IP पते या डोमेन के आधार पर ब्लॉक करने की अनुमति देती है। यह अवांछित विज़िटर्स की पहुँच को सीमित करने या आपकी वेबसाइट के किसी विशेष हिस्से, जैसे कि एडमिनिस्ट्रेशन एरिया, को केवल मालिक तक सीमित करने के लिए विशेष रूप से उपयोगी है।

विशिष्ट ब्लॉकिंग नियम लागू करने के लिए, निम्नलिखित के साथ एक .htaccess फ़ाइल बनाएं:

(सभी को एक्सेस की अनुमति देने और X.X.X.X IP पते वाले उपयोगकर्ताओं को ब्लॉक करने के लिए)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(सभी विज़िटर्स को ब्लॉक करने के लिए, सिवाय विशेष X.X.X.X और Y.Y.Y.Y IPs के)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

नोट: डिप्रिकेटेड Allow, Deny, और Order डायरेक्टिव्स को नए Require डायरेक्टिव के साथ उपयोग न करें।

Mod_Rewrite (रीडायरेक्ट नियम)

Mod_Rewrite यह निर्धारित करता है कि वेब पेज और URLs विज़िटर्स को कैसे प्रस्तुत किए जाते हैं।

डिफ़ॉल्ट रूप से, Mod_Rewrite एक URL को संबंधित फाइल सिस्टम पथ पर मैप करता है। हालांकि, यह एक URL को दूसरे पर भी रीडायरेक्ट कर सकता है।

रीडायरेक्ट सेट करने से पहले, यह महत्वपूर्ण है कि आप अपनी आवश्यकताओं के अनुसार सबसे उपयुक्त रीडायरेक्शन प्रकार चुनें:

  • स्थायी रीडायरेक्ट (301): यह रीडायरेक्ट 301 स्टेटस कोड भेजता है, जो दर्शाता है कि पेज स्थायी रूप से स्थानांतरित हो गया है। यह ब्राउज़र में कैश हो जाता है, जिससे सर्च इंजन और यूज़र एजेंट्स को अपने डेटाबेस में URL अपडेट करने का संकेत मिलता है। यह सबसे सामान्य प्रकार का रीडायरेक्ट है।

  • अस्थायी रीडायरेक्ट (302): यह रीडायरेक्ट 302 स्टेटस कोड भेजता है, जो दर्शाता है कि स्थानांतरण अस्थायी है। ब्राउज़र इस रीडायरेक्ट को कैश नहीं करेगा, और जबकि यह विज़िटर्स और सर्च इंजनों को रीडायरेक्ट करेगा, मूल पेज इंडेक्स में बना रहेगा। जब तक आप निश्चित न हों कि URL भविष्य में नहीं बदलेगा, तब तक इस प्रकार के रीडायरेक्ट की सिफारिश की जाती है।

नीचे कुछ सबसे सामान्य और उपयोगी रीडायरेक्ट्स की सूची दी गई है जिन्हें .htaccess फ़ाइल के माध्यम से कॉन्फ़िगर किया जा सकता है:

स्थायी रीडायरेक्ट example1.com से example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

अस्थायी रीडायरेक्ट exampledomain1.com से exampledomain2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

नोट: नीचे स्थायी रीडायरेक्ट्स के उदाहरण दिए गए हैं। अस्थायी रीडायरेक्ट्स को कोड के अंत में [R=301,L] को [R=302,L] से बदलकर परिभाषित किया जा सकता है (जहाँ आवश्यक हो)।

रीडायरेक्ट example1.com/subfolder से example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

HTTP से HTTPS पर रीडायरेक्ट example.com के लिए

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

या

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

non-WWW से WWW पर रीडायरेक्ट

  • किसी भी डोमेन के लिए, .htaccess प्रभावी होता है:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • निर्दिष्ट डोमेन के लिए:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

WWW से non-WWW पर रीडायरेक्ट

  • किसी भी डोमेन के लिए .htaccess प्रभावी होता है:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • निर्दिष्ट डोमेन के लिए:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

RewriteRule (.*) http://example.com/$1 [R=301,L]

सभी example.com पेजों को संबंधित domain.com पेजों पर रीडायरेक्ट करें

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

नोट: दोनों डोमेन पर सभी पेज नाम मेल खाने चाहिए, अन्यथा रीडायरेक्ट "Page not Found" संदेश देगा।

एक पेज को नए URL पर रीडायरेक्ट करें

Redirect 301 /old_page.html http://www.domain.com/new_page.html

नोट: यह तकनीक किसी डिलीटेड पेज को 404 एरर पर रीडायरेक्ट करने या कंटेंट रेफरेंस अपडेट करने के बाद SEO एडजस्टमेंट्स के लिए उपयोगी हो सकती है।

प्रमाणीकरण/प्राधिकरण 

इस प्रकार का नियम किसी डायरेक्टरी या सबडायरेक्टरी के लिए सुरक्षा प्रतिबंध निर्धारित करता है। आप डायरेक्टरीज़ को पासवर्ड से सुरक्षित कर सकते हैं ताकि कोई भी विज़िटर उन्हें एक्सेस करने की कोशिश करे तो उसे यूज़रनेम और पासवर्ड दर्ज करना पड़े।

इस सुरक्षा को सेट करने के लिए:  

1. उस डायरेक्टरी को बनाएं जिसे आप सुरक्षित करना चाहते हैं /home/cpanel_user/.htpasswds/ फोल्डर के भीतर (जैसे, domain.com/test के लिए, पथ है .htpasswds/domain.com/test/)।

2. इस डायरेक्टरी में, एक passwd फ़ाइल बनाएं और एक ऑनलाइन जनरेटर का उपयोग करके हैश्ड एक्सेस क्रेडेंशियल्स जोड़ें।

3. निम्नलिखित डायरेक्टिव्स को .htaccess फ़ाइल में जोड़ें:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

कस्टम एरर पेज

यह फीचर आपको अपनी वेबसाइट के लिए व्यक्तिगत एरर पेज बनाने की अनुमति देता है। यह एक उपयोगी विकल्प है क्योंकि यह आपको विज़िटर्स को एक ऐसा एरर संदेश दिखाने देता है जो आपकी वेबसाइट की थीम से मेल खाता है, यदि कोई टूटी हुई URL हो। इससे डिफ़ॉल्ट '404 File Not Found' एरर दिखाने के बजाय एक कस्टम-डिज़ाइन किया गया एरर पेज रिटर्न होता है जिसमें यूज़र्स को आपकी वेबसाइट कंटेंट पर वापस ले जाने के निर्देश होते हैं, जिससे भ्रम से बचा जा सकता है।

कस्टम एरर पेज सेट करने के लिए, निम्नलिखित टेक्स्ट को एक .htaccess फ़ाइल में जोड़ें:

ErrorDocument 404 /404.html

यह लाइन Apache वेब सर्वर को निर्देश देती है कि जब भी 404 (File Not Found) एरर हो, तो डोमेन की रूट डायरेक्टरी में स्थित 404.html फ़ाइल लोड करें।

नोट: अन्य एरर्स (जैसे 403 या 500) के लिए कस्टम एरर पेज बनाने के लिए, बस 404 को संबंधित एरर कोड से बदलें और /404.html को अपनी कस्टम एरर फ़ाइल के पथ से बदलें।

मौजूदा .htaccess नियमों को अक्षम करना

यदि आपको मौजूदा नियमों को अस्थायी रूप से अक्षम करने की आवश्यकता है, जैसे कि परीक्षण के लिए, तो आप उन्हें आसानी से कमेंट कर सकते हैं। ऐसा करने के लिए, बस लाइन की शुरुआत में पाउंड/हैश साइन (#) जोड़ें।

वैकल्पिक रूप से, आप एक लाइन या लाइनों के ब्लॉक को चुनकर और Ctrl + / शॉर्टकट का उपयोग करके भी अक्षम कर सकते हैं।

एक मान्य ईमेल आवश्यक है