रीडायरेक्ट .htaccess: दूसरे डोमेन पर रीडायरेक्ट और दूसरे पेज पर रीडायरेक्ट

  1. रीडायरेक्ट .htaccess: स्थायी पुनर्निर्देशन, 301
  2. Www (या बिना www) के रीडायरेक्ट कैसे सेट करें
  3. कैसे बनाया जाए ।htaccess
  4. .Htaccess फ़ाइल काम नहीं करती है
  5. क्या नग्नेक्स में .htaccess का कोई एनालॉग है?
  6. लेखक
  7. x64 (उर्फ एंडी)

अच्छा रविवार!

फ़ोरम में अक्सर आप .htaccess - अपाचे वेब सर्वर कॉन्फ़िगरेशन फ़ाइल पर प्रश्न पा सकते हैं। मुख्य स्टंबलिंग ब्लॉक यह है कि विकास में अंतिम उपयोगकर्ता के लिए सुविधाजनक कॉन्फ़िगरेशन का कार्य नहीं था (वितरण में चेकबॉक्स, ड्रॉप-डाउन सूचियों आदि का उपयोग करके दृश्य प्रतिष्ठानों के लिए एक शेल शामिल नहीं है), लेकिन सर्वर प्रशासक इस कार्य के साथ उल्लेखनीय रूप से सामना करते हैं, "मन" के साथ सामग्री होना। (लिनक्स टीम से - आदमी - डेवलपर्स से एक त्वरित ट्यूटोरियल, या पेशेवरों से पेशेवरों के लिए इस मामले में)।

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

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

रीडायरेक्ट .htaccess: स्थायी पुनर्निर्देशन, 301

इस चीज के अलग-अलग नाम हैं। नेपोनिटकी शायद उस संख्या का कारण बन सकता है - 301 क्यों है? सार HTTP प्रोटोकॉल में ही निहित है, जो एक विशिष्ट स्थिति कोड के साथ क्लाइंट के अनुरोधों का जवाब देता है। 404 Not Found कोड लगभग सभी को ज्ञात है। 200 ओके कोड लगभग अज्ञात है, लेकिन इसका मतलब है कि सब कुछ क्रम में है और दस्तावेज़ ब्राउज़र में दिखाया जाएगा। लेकिन कोड 301 मूव्ड परमानेंटली का मतलब है कि दस्तावेज आखिरकार एक नए पते पर चला गया। इसे अक्सर पुनर्निर्देशन कहा जाता है, हालांकि कुल प्रतिक्रिया पूल के रूप में नामित किया गया है - 3xx: पुनर्निर्देशन

अपाचे के पास पुनर्निर्देश के लिए कई विकल्प हैं। Mod_rewrite मॉड्यूल रीडायरेक्ट के साथ काम करने के लिए एक उत्कृष्ट तंत्र प्रदान करता है, और भविष्य में मैं इसका उपयोग उदाहरणों में करूंगा। Mod_alias मॉड्यूल में किसी विशिष्ट पते से या नियमित अभिव्यक्ति से मेल खाने वाले पते से पुनर्निर्देशन के निर्देश भी हैं:
स्थायी पुनर्निर्देशित करें / http://newsite.ru/
पुनर्निर्देशित स्थायी। * Http://newsite.ru/
लेकिन mod_rewrite में पुनर्निर्देशन के लिए अतिरिक्त विकल्प हैं, इसलिए इसका उपयोग करना सबसे अच्छा (IMHO) है।

सामान्य तौर पर, बिना शर्त बाहरी (चलो इसे उपयोगकर्ता कहते हैं) को पुनर्निर्देशित करें, जिसमें ब्राउज़र स्वचालित रूप से दूसरे पृष्ठ पर रीडायरेक्ट करता है, आमतौर पर उपयोगकर्ता के लिए अपरिहार्य रूप से (पता बार बदलता है), आप ऐसे कोड को .htaccess में डाल सकते हैं:
रिवरटाइंगइन ऑन
RewriteRule। * Http://newsite.ru/ [एल, आर = स्थायी]
यहां, पहली पंक्ति में mod_rewrite मॉड्यूल का तंत्र शामिल है, जिसे पतों के साथ कुछ भी करने की अनुमति है। आइए इस URL रूपांतरण को मक्खी की स्थितियों के आधार पर कहें। दूसरी पंक्ति सीधे रूपांतरण के लिए नियम को परिभाषित करती है, ऊपर के उदाहरण में, सभी अनुरोधों को http://newsite.ru/ पर पुनर्निर्देशित किया जाएगा। झंडे को चौकोर कोष्ठक में रखा जाता है: एल - अंतिम (अंतिम) नियम, आर - पुनर्निर्देशित प्रकार (रीडायरेक्ट), जिसे आर = कोड के रूप में इंगित किया जाता है, जहां कोड एक वर्णनात्मक या संख्यात्मक पदनाम (स्थायी या 302) है।

वास्तव में, mod_rewrite एक बहुत ही उपयोगी चीज है, क्योंकि यह इस वजह से है कि कई इंजन सक्रिय रूप से तथाकथित सीएनसी (मानव URL अंडरस्टैंडेबल) का उपयोग करते हैं। यदि आप इस शब्द से अपरिचित हैं, तो मैं एक उदाहरण के साथ समझाऊंगा। के बारे में लेख साइट के लिए मुफ्त इंजन इसका पता है: https://a-panov.ru/2014/11/free-cms/

इस URL को देखते हुए, यह तुरंत स्पष्ट हो जाता है कि यह लेख नवंबर 2014 में प्रकाशित हुआ था। शीर्षक को पीछे हटाते हुए स्लैश के साथ - https://a-panov.ru/2014/11/ - हम नवंबर के लिए सभी प्रकाशनों की एक सूची प्राप्त करेंगे। सामान्य पते, प्रकार:

https://a-panov.ru/?p=389

कोई विशेष मित्रता नहीं। ऐसे पते को देखकर, आप उस पृष्ठ के बारे में नहीं कह सकते हैं जिस पर वह जाता है, बिल्कुल कुछ भी नहीं।

जब आप लिंक करने के लिए नई साइट के किस पृष्ठ की परवाह नहीं करते हैं तो यह विधि अच्छी है। लेकिन अगर आप किसी अन्य डोमेन पर चले गए हैं, तो पते बनाए रखते हुए सभी अनुरोधों को पुनर्निर्देशित करना उचित है। ऐसा करने के लिए, निम्न कोड का उपयोग करें:
रिवेरिट्यूले ^। * $ Http://newsite.ru/$0 [QSA, L, R = स्थायी]
नया क्यूएसए ध्वज उन मापदंडों को भी बचाएगा जो प्रश्न चिह्न के बाद पते में पाए जा सकते हैं। पहले से ही परिचित उदाहरण में:

https://a-panov.ru/?p=389

अगर मैं कोड को .htaccess के ऊपर रखता हूं, तो http://newsite.ru/?p=389 पते पर पुनर्निर्देशन होगा, जिसके बिना यह ध्वज मौजूद नहीं होगा।

इसके बाद, मैं परिवर्तन समावेश निर्देश को छोड़ दूंगा:
रिवरटाइंगइन ऑन
बस याद रखें: यदि आप mod_rewrite तंत्र का उपयोग करते हैं, तो इस निर्देश के बाद सभी शर्तों / रूपांतरणों को निष्पादित किया जाना चाहिए। निम्न लाइन को अक्षम करने के लिए उपयोग किया जाता है:
रिवरटाइन्जाइन ऑफ
तदनुसार, प्रत्येक नियम के लिए परिवर्तनों को लगातार "चालू" करने की आवश्यकता नहीं है - यह स्वचालित रूप से पहले निर्देश के तुरंत बाद किया जाना शुरू होता है।

Www (या बिना www) के रीडायरेक्ट कैसे सेट करें

ऐसे मामलों के लिए पुनर्निर्देशन की आवश्यकता होती है जब साइट nsite.ru और www.nsite.ru पर उपलब्ध होती है, इस मामले में, खोज इंजन उन्हें डुप्लिकेट मानते हैं और या तो उनमें से किसी एक विकल्प को चुन सकते हैं। मुख्य दर्पण , या खोज में दोनों डोमेन से विकल्प होंगे। सामान्य तौर पर, किसी साइट को रैंकिंग करते समय यह एक नकारात्मक कारक है।

एक डोमेन के लिए विकल्प आसान है। रीडायरेक्शन उपडोमेन www.site.ru से site.ru पर किया जाता है:
रेवेरिटकॉन्ड% {HTTP_HOST} ^ www \ .nsite \ _ $
RewriteRule। * Http://nsite.ru/$0 [QSA, L, R = स्थायी]
यह वह जगह है जहां नया रेवेरिटकॉन्ड निर्देश दिखाई दिया, जो उस स्थिति को निर्धारित करता है जिसके तहत पुनर्निर्देशन को काम करना चाहिए - रेव्रीराइट नियम। इस स्थिति में, www.nsite.ru के अनुरूप डोमेन नाम (नियमित अभिव्यक्तियों में, डॉट प्रतीक का अर्थ है "कोई भी वर्ण", इसलिए इसे बैकस्लैश के साथ ढालने की सलाह दी जाती है)।

रिवर्स पुनर्निर्देशन भी बहुत सरल है:
रीराइट्रॉन्ड% {HTTP_HOST} ^ nsite \ _ $
RewriteRule। * Http://www.nsite.ru/$0 [QSA, L, R = स्थायी]
दोनों विकल्प काम कर रहे हैं, लेकिन उनके पास एक छोटा सा माइनस है - प्रत्येक नए कॉन्फिग के लिए अपने स्वयं के साथ nsite.ru डोमेन को बदलना आवश्यक है। क्या एक अद्वितीय विकल्प बनाना संभव है? आराम से!

किसी भी www उपडोमेन से पुनर्निर्देशित करें:
RewriteCond% {HTTP_HOST} ^ www \ (। *।) $
पुनर्लेखन। * Http: //% 1 / $ 0 [QSA, L, R = स्थायी]

Www के साथ एक उपडोमेन पर पुनर्निर्देशित करें:
% ReriteCond% {HTTP_HOST}! ^ Www \।
पुनर्लेखन। * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = ×]

% {HTTP_HOST} - वर्तमान डोमेन

कैसे बनाया जाए ।htaccess

इस तरह के सवाल भी उठते हैं। समस्या यह है कि मानक एक्सप्लोरर (विंडोज में एप्लिकेशन, जो ग्राफिकल इंटरफ़ेस के लिए ज़िम्मेदार है) आपको डॉट से शुरू होने वाली फ़ाइलों को बनाने की अनुमति नहीं देता है (डेस्कटॉप या विंडो पर राइट-क्लिक करके फ़ाइलें बनाएं और बनाएँ सूची से वांछित कार्रवाई का चयन करें)। लेकिन एक तरीका है: मानक नोटपैड रिकॉर्डर खोलें, फ़ाइल का चयन करें → मेनू में इस रूप में सहेजें ... और इसे सहेजे गए फ़ाइल के नाम के रूप में निर्दिष्ट करें - इसके बाद इसे बनाया जाएगा।

.Htaccess फ़ाइल काम नहीं करती है

ऐसे मामले हैं जब किसी फ़ाइल से निर्देश काम नहीं करते हैं। यह आमतौर पर इस तथ्य के कारण होता है कि .htaccess समर्थन अपाचे विन्यास में अक्षम है, जिसके लिए निर्देश जिम्मेदार है:
AllowOverride कोई नहीं

यह आमतौर पर गति को कुछ हद तक बढ़ाने के लिए किया जाता है - इस मामले में, वेब सर्वर खोज और पार्स नहीं करता है।

यह भी संभव है कि अपाचे का उपयोग सर्वर पर नहीं किया जाता है, उदाहरण के लिए, विंडोज होस्टिंग पर IIS मुख्य "अतिथि" है। स्पष्टीकरण के लिए, अपने होस्टर के समर्थन से संपर्क करें।

क्या नग्नेक्स में .htaccess का कोई एनालॉग है?

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

लेखक

1 दिन ऑनलाइन नहीं

x64 (उर्फ एंडी)

टिप्पणियाँ: 2834 प्रकाशन: 394 पंजीकरण: 02-04-2009

Htaccess का कोई एनालॉग है?
Ru/?
Ru/?
Ru/?
Htaccess का कोई एनालॉग है?