রিডাইরেকশন আমাদের সকলের-ই কম বেশি দরকার পড়ে। অনেক ক্ষেত্রে ব্লগ বা ওয়েবসাইটের সংস্কার কাজ করার সময় কিংবা কোন কারণে পুরনো ঠিকানার বদলে নতুন ঠিকানার দরকার পড়লে সেক্ষেত্রে পুরনো ব্যবহারকারীদের হালনাগাদ না করা পর্যন্ত সাময়িকভাবে পুরনো ঠিকানা থেকে নতুন ঠিকানায় ফরোয়ার্ড বা রিডাইরেকশন খুব-ই জরুরী একটি বিষয়।

আজ রিডাইরেকশন করার কয়েকটি উপায় বলার ইচ্ছে নিয়েই লেখা শুরু করেছি।

প্রথমেই দেখা যাক, জনপ্রিয় সার্ভার সাইড স্ক্রিপটিং গুলোর কি দশা। আমি কেবল পিএইচপি, এএসপি , জেএসপি এবং কোল্ডফিউশনের উদাহরণ দিচ্ছি :

PHP দিয়ে রিডাইরেকশন:

একটি খালি টেক্সট ফাইল নিয়ে তার একেবারে উপরের দিকে (শুরুতে কোন GAP না দিয়ে) লিখুন নিচের কোড টুকু:


< ?php
header( 'Location: http://নতুন ঠিকানা/' ) ;
?>

ফাইল সেইভ করুন পিএইচপি ফাইল হিসাবে index.php নাম দিয়ে। এরপর আপনার বর্তমান ফোল্ডারে রেখে দিন এফটিপি বা ফাইল ম্যানেজার দিয়ে। কাজ হয়ে গেল।

ASP দিয়ে রিডাইরেকশন:

একটি খালি টেক্সট ফাইল নিয়ে তার একেবারে উপরের দিকে (শুরুতে কোন GAP না দিয়ে) লিখুন নিচের কোড টুকু:



< %@ Language=VBScript %>
< % Response.Redirect("http://নতুন ঠিকানা/") %>;

ফাইল সেইভ করুন পিএইচপি ফাইল হিসাবে Default.asp নাম দিয়ে। এরপর আপনার বর্তমান ফোল্ডারে রেখে দিন এফটিপি বা ফাইল ম্যানেজার দিয়ে। কাজ হয়ে গেল।

JSP দিয়ে রিডাইরেকশন:

একটি খালি টেক্সট ফাইল নিয়ে তার একেবারে উপরের দিকে (শুরুতে কোন GAP না দিয়ে) লিখুন নিচের কোড টুকু:


< % response.sendRedirect("someUrl"); %>

ফাইল সেইভ করুন পিএইচপি ফাইল হিসাবে index.jsp নাম দিয়ে। এরপর আপনার বর্তমান ফোল্ডারে রেখে দিন এফটিপি বা ফাইল ম্যানেজার দিয়ে। কাজ হয়ে গেল।

Coldfusion দিয়ে রিডাইরেকশন:

একটি খালি টেক্সট ফাইল নিয়ে তার একেবারে উপরের দিকে (শুরুতে কোন GAP না দিয়ে) লিখুন নিচের কোড টুকু:

< cfheader statuscode="301" statustext="Moved Permanently" >
< cfheader name="Location" value="http://www.domain.com/" >
< cfabort >

ফাইল সেইভ করুন পিএইচপি ফাইল হিসাবে index.cfm নাম দিয়ে। এরপর আপনার বর্তমান ফোল্ডারে রেখে দিন এফটিপি বা ফাইল ম্যানেজার দিয়ে। কাজ হয়ে গেল।

শুধু এইচটিএমএল দিয়েও মেটা রিফ্রেশের মাধ্যমে রিডাইরেকশন করা যায়, তবে, আমার মতে সবচাইতে কার্যকর হলো .htaccess দিয়ে রিডাইরেক্ট করা।

.htaccess কেন?

প্রতিবার যখন কোন ওয়েবসার্ভারে হিট হয়, বা কোন পাঠক/পাঠিকা একটি ফোল্ডারের একটি ফাইল দেখার জন্য Page Request করেন, তখন, এপাচি সার্ভার (ধরে নিচ্ছি আপনার হোস্টিং এপাচি সার্ভারে) .htaccess বা htaccess.txt ফাইলে একবার মিলিয়ে নেয় যে ঐ পাতাটি দেখবার অনুমতি সাধারণ/নির্দিষ্ট পাঠক/পাঠিকার আছে কিনা? (আরও বেশ কিছু কাজ-ও করে থাকে)।

ফাইলটির পুরো নাম হলো: hypertext access। আসকি তে লেখা এই ফাইলে কিছু সাধারণ পরিবর্তনের মাধ্যমেই আমরা একটি ফোল্ডারের বা সার্ভার-রুট এর ভিজিটরদের রিডাইরেক্ট করতে পারি।

    .htaccess দিয়ে কিভাবে?

খালি টেক্সট ফাইল নিন, তাতে লিখুন:

Redirect 301 / http://forum.amaderprojukti.com/

ফাইলটি .htaccess নামে সেইভ করে, সার্ভার রুটে রেখে দিন।

http প্রটোকল অনুসারে কোন সার্ভারে কোন ওয়েবসাইটের ঠিকানার স্থায়ী পরিবর্তনের জন্য “৩০১” কোডটি ব্যবহার করা হয়।

উপরের উদাহরণে আমরা htaccess ফাইলের সহায়তায় সার্ভারকে জানাচ্ছি যে “/” অর্থাৎ সাইট রুট, স্থায়ী ভাবে http://forum.amaderprojukti.com/ ঠিকানায় সরে গেছে। এর ফলাফল হবে এই যে, সার্ভার, ব্রাউজার রিকোয়েস্ট পূরণ করার জন্য আর কোন ফাইল না খুঁজে সরাসরি উল্লিখিত ঠিকানায় ফরোয়ার্ড করে দেবে।

এ তো গেল পুরো সার্ভারের সবকিছু বদলে দেয়ার উপায়। এমন যদি হয় যে কেবলি একটা পুরনো ফোল্ডার থেকে নতুন ফোল্ডারে রিডাইরেক্ট করতে হবে?

Redirect /পুরনো ফোল্ডার/পুরনো ফাইল.html http://ডোমেইন/নতুন ফোল্ডার/নতুন ফাইল.html

বিভিন্ন প্রয়োজনে আমরা অনেক সময়, http://www.domain.com এর বদলে কেবল, http://domain.com জাতীয় ঠিকানা ব্যবহার করতে আগ্রহী থাকি। সেক্ষেত্রে লিখতে হবে এভাবে:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.ডোমেইন\.com$ [NC]
RewriteRule ^(.*)$ http://ডোমেইন.com/$1 [L,R=301]

আবার এর উল্টোটা করতে, অর্থাৎ, http://domain.com এর বদলে, http://www.domain.com ঠিকানায় স্থায়ী ভাবে সাইট চালাতে হবে, লিখুন এভাবে:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.ডোমেইন\.com$ [NC]
RewriteRule ^(.*)$ http://www.ডোমেইন.com/$1 [L,R=301]

যারা ই-কমার্স নিয়ে কাজ করেন বা করতে ইচ্ছুক, তাদের এই উদাহরণ কাজ দিতে পারে। ধরুন, যেকোন প্রয়োজনেই, আপনি আপনার সব ভিজিটরকে সিকিউর http বা https এ নিয়ে যেতে চান। কিভাবে করবেন? সাধারণত http পোর্ট থাকে ৮০, সুতরাং, URL RewriteCond বা ইউআরএল রিরাইট কন্ডিশন হিসাবে পোর্ট ৮০ দিয়ে, রুল হিসাবে https ঠিকানা দিয়ে দিন। ঠিক এভাবে:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.ডোমেইন.com/$1 [R,L]

তবে, কোন একটি নির্দিষ্ট ফোল্ডারের জন্য যদি সিকিউর পাথ ব্যবহার করতে চান, তাহলে RewriteCond %{REQUEST_URI} somefolder লাইনটুকু বাড়তি যোগ করতে হবে।

আশা করি নতুনদের কাজে দেবে!

পড়বার জন্য ধন্যবাদ।