পুরোনো ও নতুন URL পেস্ট করুন এবং .htaccess বা Nginx-এর জন্য 301 নিয়ম পান, লুপের জন্য যাচাই করা
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।একটি 301 রিডাইরেক্ট ব্রাউজার ও সার্চ ইঞ্জিনকে জানায় যে একটি পেজ স্থায়ীভাবে সরে গেছে। Apache-এর .htaccess-এ RewriteRule ^old-page$ /new-page [L,R=301] /old-page-কে /new-page-এ পাঠায়; Nginx-এ location = /old-page { return 301 /new-page; } একই কাজ করে। অস্থায়ী স্থানান্তরের জন্য 302 বা 307 এবং ইচ্ছাকৃতভাবে সরানো পেজের জন্য 410 ব্যবহার করুন।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
রিডাইরেক্ট বক্সে প্রতি লাইনে একটি করে রিডাইরেক্ট পেস্ট করুন: পুরোনো পাথ, একটি স্পেস, তারপর নতুন পাথ বা URL।
Apache বা Nginx বেছে নিন, এবং চাইলে HTTPS বাধ্যতামূলক চালু করুন অথবা www বা www ছাড়া বেছে নিন।
লুপ হিসেবে চিহ্নিত যেকোনো লাইন ঠিক করুন, এবং চেইন ছোট করার প্রস্তাব গ্রহণ করুন যাতে প্রত্যেক ভিজিটর একটি মাত্র লাফ দেন।
কপি বা ডাউনলোড ক্লিক করুন, এবং নিয়মগুলো আপনার .htaccess ফাইলের শুরুতে বা আপনার server ব্লকে যোগ করুন।
প্রতি লাইনে একটি করে রিডাইরেক্ট পেস্ট করুন, প্রথমে পুরোনো ঠিকানা তারপর নতুনটি, এবং আপনি টাইপ করার সঙ্গে সঙ্গে নিয়মগুলো লেখা হয়। পুরোনো ঠিকানা পাথ হতে পারে বা ব্রাউজার কিংবা অ্যানালিটিক্স এক্সপোর্ট থেকে কপি করা পূর্ণ URL হতে পারে; ট্যাব, কমা ও তীরচিহ্নও কাজ করে, তাই স্প্রেডশিটের এক জোড়া কলাম সরাসরি পেস্ট হয়ে যায়। ডিফল্ট বদলাতে লাইনের শেষে একটি কোড যোগ করুন, অথবা যে পেজ আর নেই তার জন্য নতুন ঠিকানার বদলে 410 লিখুন।
কোন কোড।
| কোড | অর্থ | কখন ব্যবহার করবেন |
|---|---|---|
| 301 | স্থায়ীভাবে সরানো | নাম বদলানো পেজ, নতুন ডোমেইন, HTTPS |
| 308 | স্থায়ী, একই মেথড | যে API ও ফর্ম POST করে |
| 302 / 307 | অস্থায়ী | ক্যাম্পেইন, রক্ষণাবেক্ষণ, A/B টেস্ট |
| 410 | মুছে ফেলা | ইচ্ছাকৃতভাবে সরানো পেজ |
Apache. প্রতিটি নিয়ম mod_rewrite ব্যবহার করে। সহজতর Redirect ডিরেক্টিভ প্রিফিক্স মেলায়, তাই Redirect /shop /store /shopping-কেও ধরে ফেলে, আর দুটি মডিউল মেশালে সেগুলো এমন ক্রমে চলে যা অনেককে অবাক করে। প্যাটার্নগুলো অ্যাঙ্কর ও এস্কেপ করা, তাই old.html-এর একটি ডট কেবল একটি ডটের সঙ্গেই মেলে। কোয়েরি স্ট্রিংসহ একটি পুরোনো ঠিকানা, যেমন /products?id=42, নিজস্ব RewriteCond পায় এবং নতুন ঠিকানা থেকে কোয়েরিটি বাদ দেওয়া হয়।
Nginx. প্রতিটি পেজ return-সহ একটি নির্দিষ্ট location = ব্লক পায়। HTTPS ও www-এর পছন্দ নিজস্ব server ব্লক পায়, যার জন্য আপনার ডোমেইন দরকার।
যাচাই। যে নিয়ম কোনো পেজকে সরাসরি বা অন্য নিয়মের মাধ্যমে তার নিজের কাছেই পাঠায়, সেটি লুপ এবং বাদ দেওয়া হয়। যে নিয়ম অন্য একটি রিডাইরেক্ট করা পেজের দিকে নির্দেশ করে, সেটি চেইন; একটি ক্লিকে সেটি সরাসরি চূড়ান্ত পেজের দিকে নির্দেশ করে, তাই ভিজিটর ও ক্রলার কয়েকটির বদলে একটি লাফ দেয়। পুনরাবৃত্ত পুরোনো ঠিকানা চিহ্নিত করা হয়, কারণ কেবল প্রথম নিয়মটিই কখনো চলবে।
HTTPS ও হোস্ট একটি লাফেই সামলানো হয়, পেজের নিয়মগুলোর আগে। প্রথমে 302 দিয়ে পরীক্ষা করুন: ব্রাউজার একটি 301 অনেক দিন মনে রাখে।
সবকিছু আপনার ব্রাউজারে চলে; আপনি যা পেস্ট করেন তার কিছুই কোথাও পাঠানো হয় না।
একবার RewriteEngine On যোগ করুন, তারপর প্রতি পেজের জন্য একটি লাইন: RewriteRule ^old-page$ /new-page [L,R=301]। .htaccess-এ প্যাটার্নের শুরুতে স্ল্যাশ থাকে না, ক্যারেট ও ডলার চিহ্ন এটিকে কেবল ঠিক সেই পেজের সঙ্গেই মেলায়, এবং R=301 স্থানান্তরটিকে স্থায়ী করে। নিয়মগুলো ফাইলের শুরুর কাছে রাখুন, যেকোনো WordPress বা ফ্রেমওয়ার্ক ব্লকের আগে।
301 ও 308 স্থায়ী: সার্চ ইঞ্জিন পুরোনো পেজের র্যাঙ্কিং নতুন ঠিকানায় সরিয়ে নেয়। 302 ও 307 অস্থায়ী, তাই পুরোনো ঠিকানা ইনডেক্সে থেকে যায়। 307 ও 308 ব্রাউজারকে একই মেথড, যেমন POST, পুনরাবৃত্তি করতেও বাধ্য করে, আর 301 ও 302 GET-এ বদলানোর অনুমতি দেয়। বেশিরভাগ পেজ স্থানান্তরে 301 ব্যবহার করা উচিত।
শর্তগুলো একত্র করুন যাতে ভিজিটর একটি মাত্র লাফ দেন: HTTPS বন্ধ থাকলে বা হোস্ট www দিয়ে শুরু হলে রিডাইরেক্ট করুন, এবং তাঁকে https সহ www ছাড়া হোস্টে পাঠান। এই জেনারেটর ঠিক এটাই লেখে তিনটি RewriteCond লাইন ও একটি RewriteRule দিয়ে, অথবা Nginx-এর জন্য এক জোড়া server ব্লক দিয়ে, পরপর দুটি আলাদা রিডাইরেক্টের বদলে।
লুপ হয় যখন একটি নিয়ম একটি পেজকে এমন ঠিকানায় পাঠায় যাকে একই বা অন্য নিয়ম আবার ফিরিয়ে দেয়। সাধারণ কারণ হলো /page-কে /page/-এ রিডাইরেক্ট করা যখন অন্য নিয়ম স্ল্যাশ সরিয়ে দেয়, অথবা Cloudflare Flexible SSL-এর পেছনে HTTPS বাধ্যতামূলক করা, যেখানে সার্ভার সবসময় HTTP দেখে। এই টুল লুপ তৈরি করা নিয়ম প্রত্যাখ্যান করে এবং লাইনটির নাম বলে।
RewriteRule কখনো কোয়েরি স্ট্রিং দেখে না, তাই প্রথমে একটি RewriteCond দিয়ে সেটি মেলান: RewriteCond %{QUERY_STRING} ^id=42$, তারপর পাথের জন্য RewriteRule। QSD ফ্ল্যাগ যোগ করুন যাতে ?id=42 নতুন ঠিকানায় কপি না হয়। এখানে /products?id=42 /products/blue-mug পেস্ট করলে Apache-এর জন্য দুটি লাইনই লেখা হয়, অথবা Nginx-এর জন্য একটি if ($args) পরীক্ষা।
প্রতিটি অতিরিক্ত লাফে একটু সময় লাগে, এবং Google হাল ছাড়ার আগে সর্বোচ্চ 10টি লাফ অনুসরণ করে, তাই চেইন ক্রলের প্রচেষ্টা নষ্ট করে এবং ভিজিটরদের ধীর করে। দ্বিতীয়বার সাইট সরানোর পর পুরোনো ঠিকানাগুলো প্রায়ই এমন পেজের দিকে নির্দেশ করে যা আবার রিডাইরেক্ট করা হয়েছে। এই জেনারেটর প্রতিটি চেইন খুঁজে বের করে এবং একটি ক্লিকে নিয়মটি নতুন করে লেখে যাতে সেটি সরাসরি চূড়ান্ত পেজের দিকে নির্দেশ করে।
হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।
এখনও আটকে আছেন? .htaccess রিডাইরেক্ট জেনারেটর সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।