सर्वर पर रीडायरेक्ट लॉजिक लागू करने में आम तौर पर क्लाइंट को एक विशिष्ट HTTP स्थिति कोड और एक Location हेडर भेजना शामिल होता है। जब कोई ब्राउज़र इस प्रतिक्रिया को प्राप्त करता है, तो वह स्वचालित रूप से Location हेडर में निर्दिष्ट URL पर नेविगेट करता है।
यहां सामान्य विधियों और विचारों का विवरण दिया गया है:
1. रीडायरेक्ट के लिए HTTP स्थिति कोड
रीडायरेक्ट के लिए सबसे आम HTTP स्थिति कोड हैं:
- 301 स्थायी रूप से स्थानांतरित: यह इंगित करता है कि संसाधन को स्थायी रूप से एक नए URL पर ले जाया गया है। खोज इंजन नए URL पर अपने इंडेक्स को अपडेट करेंगे, और क्लाइंट को इस रीडायरेक्ट को कैश करना चाहिए।
- 302 मिला (या अस्थायी रूप से स्थानांतरित): यह इंगित करता है कि संसाधन अस्थायी रूप से एक अलग URL पर उपलब्ध है। खोज इंजन आम तौर पर अपने इंडेक्स को अपडेट नहीं करते हैं, और क्लाइंट को इस रीडायरेक्ट को कैश नहीं करना चाहिए।
- 307 अस्थायी रीडायरेक्ट: यह HTTP/1.1 द्वारा 302 का उत्तराधिकारी है। यह स्पष्ट रूप से बताता है कि रीडायरेक्ट करते समय अनुरोध विधि को नहीं बदला जाना चाहिए।
अधिकांश स्थायी रीडायरेक्ट के लिए, SEO उद्देश्यों के लिए 301 को प्राथमिकता दी जाती है। अस्थायी रीडायरेक्ट के लिए, 302 या 307 आम हैं।
2. सर्वर-साइड कार्यान्वयन उदाहरण
सटीक कार्यान्वयन आपके द्वारा उपयोग की जा रही सर्वर-साइड तकनीक पर निर्भर करता है।
a) Node.js (Express.js)
const express = require('express');
const app = express();
// स्थायी रीडायरेक्ट
app.get('/old-path', (req, res) => {
res.redirect(301, '/new-path');
});
// अस्थायी रीडायरेक्ट
app.get('/another-old-path', (req, res) => {
res.redirect('/another-new-path'); // डिफ़ॉल्ट रूप से 302
});
// स्थिति कोड के साथ मैन्युअल रीडायरेक्ट
app.get('/manual-redirect', (req, res) => {
res.writeHead(301, {
'Location': '/final-destination'
});
res.end();
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
b) Python (Flask)
from flask import Flask, redirect, url_for, abort, Response
app = Flask(__name__)
@app.route('/old-path')
def old_path():
return redirect(url_for('new_path'), code=301)
@app.route('/new-path')
def new_path():
return "Welcome to the new path!"
@app.route('/another-old-path')
def another_old_path():
return redirect('/another-new-path') # डिफ़ॉल्ट रूप से 302
@app.route('/another-new-path')
def another_new_path():
return "This is another new path!"
@app.route('/manual-redirect')
def manual_redirect():
response = Response(status=301)
response.headers['Location'] = '/final-destination'
return response
@app.route('/final-destination')
def final_destination():
return "You reached the final destination!"
if __name__ == '__main__':
app.run(debug=True)
c) PHP
<?php
// स्थायी रीडायरेक्ट
if ($_SERVER['REQUEST_URI'] === '/old-path') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: /new-path");
exit();
}
// अस्थायी रीडायरेक्ट
if ($_SERVER['REQUEST_URI'] === '/another-old-path') {
header("Location: /another-new-path"); // डिफ़ॉल्ट रूप से 302
exit();
}
// ... बाकी PHP कोड
?>
d) Apache (.htaccess)
Apache वेब सर्वर के लिए, रीडायरेक्ट को अक्सर .htaccess फ़ाइलों या मुख्य सर्वर कॉन्फ़िगरेशन में कॉन्फ़िगर किया जा सकता है।
# स्थायी रीडायरेक्ट
Redirect 301 /old-path /new-path
# डोमेन का स्थायी रीडायरेक्ट
RedirectMatch 301 ^/old-domain/(.*)$ http://www.new-domain.com/$1
# अधिक जटिल रीडायरेक्ट के लिए RewriteRule
RewriteEngine On
RewriteRule ^old-path-regex$ /new-path-target [R=301,L]
e) Nginx
Nginx वेब सर्वर के लिए, रीडायरेक्ट सर्वर ब्लॉक में कॉन्फ़िगर किए जाते हैं।
server {
listen 80;
server_name example.com;
# स्थायी रीडायरेक्ट
location = /old-path {
return 301 /new-path;
}
# अस्थायी रीडायरेक्ट
location = /another-old-path {
return 302 /another-new-path;
}
# पूरे डोमेन को रीडायरेक्ट करें
server_name old-domain.com;
return 301 $scheme://new-domain.com$request_uri;
# ... अन्य कॉन्फ़िगरेशन
}
3. मुख्य विचार
- SEO: खोज इंजन रैंकिंग को बनाए रखने के लिए स्थायी परिवर्तनों के लिए 301 का उपयोग करें।
- उपयोगकर्ता अनुभव: रीडायरेक्ट तेज़ और निर्बाध होने चाहिए। रीडायरेक्ट श्रृंखलाओं (अंतिम गंतव्य तक पहुंचने से पहले कई रीडायरेक्ट) से बचें क्योंकि वे पृष्ठ लोडिंग को धीमा कर सकते हैं।
- सुरक्षा: ओपन रीडायरेक्ट कमजोरियों को रोकने के लिए उपयोगकर्ता द्वारा प्रदान किए गए इनपुट को रीडायरेक्ट करते समय सावधान रहें। हमेशा रीडायरेक्ट URL को मान्य और साफ करें।
- सापेक्ष बनाम पूर्ण URL: आप एक ही डोमेन के भीतर रीडायरेक्ट के लिए सापेक्ष पथ (जैसे
/new-path) या विभिन्न डोमेन पर रीडायरेक्ट के लिए पूर्ण URL (जैसेhttps://www.example.com/new-path) का उपयोग कर सकते हैं। - लॉगिंग: निगरानी और डीबगिंग के लिए सुनिश्चित करें कि आपका सर्वर रीडायरेक्ट लॉग करता है, विशेष रूप से 301।
- परीक्षण: यह सुनिश्चित करने के लिए कि वे अपेक्षा के अनुसार काम करते हैं और अनंत लूप या गलत गंतव्य नहीं बनाते हैं, सभी रीडायरेक्ट लॉजिक का पूरी तरह से परीक्षण करें।