PHP: Dusre page pe Redirect kaise kare

सवाल पूछें
आप यदि वेबमास्टर हैं तो संभव है आपके साथ कभी ऐसा हुआ हो कि आपकी किसी फाइल का नाम ऐसा हो जिससे आपका मकसद पूरा नहीं होता हो या आपको फाइल ट्री को रीनेम करने की जरूरत हो. यदि ऐसा है तो ये अपेक्षाकृत अापकी साइट के अंदर जाकर बदलना आसान है. हालांकि दूसरे साइटों में कोई भी बाहरी लिंक बदलना कहीं ज्यादा मुश्किल है.

पेज का लोकेशन बदलते वक्त, सर्च इंजन कई बार यूजर्स को गलत ऐड्रेस भेज देता है. कई बार तो इससे भी बुरा होता है, और पेज का SEO पूरी तरह रीसेट हो जाता है. गनीमत है कि इसका एक आसान समाधान है. ये समाधान नेविगेशनल स्थिरता और आपकी साइट के SEO को बनाए रखने के लिए redirections का इस्तेमाल करता है, चाहे सारी फाइलें कहीं और मूव हो गई हों.



Redirect Headers

सिम्पल रीडायरेक्शन

विजिटर को किसी दूसरे पेज (कंडीशनल लूप में खासतौर से उपयोगी) पर रीडायरेक्ट करने के लिए बस आपको आगे दिए गए कोड का इस्तेमाल करना है:


<?php    
header('Location: mypage.php');
?>

ऐसे में mypage.php उस पेज का ऐड्रेस है जिस पर आप विजिटर को रीडायरेक्ट करना चाहते हैं. ये ऐड्रेस पूरा हो सकता है और हो सकता है कि इसमें इस फॉरमैट में पैरामीटर शामिल हों: mypage.php?param1=val1¶m2=val2).

रीलेटिव/ऐब्सोल्यूट पाथ

जब आपको Relative या Absolute paths से निपटना हो तो ये अच्छा होगा कि आप सर्वर, (DOCUMENT_ROOT) के रूट से ऐब्सोल्यूट पाथ को चुनें. इसके लिए आगे दिया गया फॉरमैट चुनें:

<?php    
header('Location: /directory/mypage.php');
?>

यदि कभी भी दूसरे सर्वर पर टारगेट पेज हो, आपको फुल URL शामिल करना चाहिए:

<?php    
header('Location: http://www.ccm.net/forum/');
?>

HTTP हेडर

HTTP प्रोटोकॉल के मुताबिक, HTTP हेडर को किसी भी कंटेन्ट के पहले भेजा जाना चाहिए. इसका मतलब ये हुआ कि कोई भी कैरेक्टर हेडर के पहले, यहां तक कि खाली स्पेस के पहले नहीं भेजा जाना चाहिए!

अधिक जानकारी के लिए, कैसे हेडर भेजें, इस बारे में हमारा आर्टिकल पढ़ें.

टेम्पररी/परमानेन्ट रीडायरेक्शन

डिफॉल्ट रूप से ऊपर मौजूद redirection का प्रकार temporary है. इसका मतलब ये है कि गूगल जैसे सर्च इंजन इंडेक्सिंग के वक्त रीडायरेक्शन को लेकर कोई सक्रियता नहीं दिखाएगा.

यदि आप सर्च इंजन को ये नोटिफाई करना चाहते हैं कि वो पेज स्थायी रूप से दूसरी जगह पर ले जाया गया है, तो आगे दिए गए कोड का इस्तेमाल करें:

<?    
header('Status: 301 Moved Permanently', false, 301);
header('Location: new_address');
?>

उदाहरण के लिए, इस पेज में आगे दिया गया कोड है:

<?      
header('Status: 301 Moved Permanently', false, 301);
header('Location: /pc/imprimante.php3');
exit();
?>

जब आप ऊपर दिए गए लिंक को क्लिक करते हैं तो आप इस पेज पर अपने आप रीडायरेक्ट हो जाते हैं. इसके अलावा, यह ये स्थायी रीडायरेक्शन है (Status: 301 स्थायी रूप से मूव किया गया). इसलिए जब आप गूगल में पहला URL टाइप करते हैं, आप अपने आप दूसरे रीडायरेक्टेड लिंक पर रीडायरेक्ट कर दिए जाते हैं.

PHP कोड की व्याख्या

उस हेडर() के बाद स्थित PHP कोड की व्याख्या सर्वर करेगा, भले विजिटर रीडायरेक्शन में बताए गए ऐड्रेस पर चला जाए. अधिकांश मामलों में, इसका मतलब ये होता है कि आपको सर्वर का लोड कम करने के लिए exit() फंक्शन के हेडर() को फॉलो करने के लिए एक विधि की जरूरत होती है:


<?    
header('Status: 301 Moved Permanently', false, 301);
header('Location: address');
exit();
?>

Image: © Bildagentur Zoonar GmbH - Shutterstock.com

ओरिजिनल आर्टिकल deri58 ने पब्लिश किया. Swarnkanta ने अनुवाद किया. ताजा अपडेट: 18 जुलाई, 2018 - 11:51 अपराह्न पर RanuP ने किया.

CCM (https://in.ccm.net/) पर उपलब्ध यह डॉक्युमेंट "PHP: किसी दूसरे पेज पर Redirect कैसे करें" क्रिएटिव कॉमन लाइसेंस के तहत उपलब्ध कराया गया है. जैसा कि इस नोट में साफ जाहिर है, आप इस पन्ने को लाइसेंस के तहत दी गई शर्तों के मुताबिक संशोधित और कॉपी कर सकते हैं.