.htaccess ব্যবহার করে নিয়ম এবং রিডাইরেক্ট কনফিগার করা হচ্ছে

ডিরেক্টরি স্তরের একটি কনফিগারেশন ফাইল হলো .htaccess ফাইল, যা Apache ওয়েব সার্ভার দ্বারা সমর্থিত। এটি আপনাকে নির্দিষ্ট একটি অ্যাকাউন্টের জন্য ওয়েব সার্ভারের সেটিংস (যেমন ফিচার চালু বা বন্ধ করা) পরিবর্তন করতে দেয়, সার্ভারের গ্লোবাল কনফিগারেশনে কোনো প্রভাব না ফেলে।

এই ফাইলটি তার অবস্থানকৃত পুরো ডিরেক্টরিতে, সেই ডিরেক্টরির সকল ফাইল ও সাবডিরেক্টরিসহ, তার সেটিংস প্রয়োগ করে। .htaccess ফাইলে কোনো পরিবর্তন সঙ্গে সঙ্গে কার্যকর হয়, সার্ভার রিস্টার্ট করার প্রয়োজন নেই।

কিভাবে .htaccess ফাইল খুঁজে পাবেন

.htaccess ফাইল খুঁজে পেতে:  .htaccess ফাইল:  

১. আপনার Spaceship অ্যাকাউন্টে যান >> Hosting Manager Launchpad-এ নির্বাচন করুন >> Manage হোস্টিং প্ল্যানের পাশে >> Files and Storage >> Manage Files ওয়েবসাইটের নামের পাশে।

২. আপনি ডোমেইনের রুট ফোল্ডারে রিডাইরেক্ট হবেন। 

৩.  আপনি যদি ডোমেইনের জন্য .htaccess ফাইল এডিট করতে চান, তাহলে ডোমেইনের রুট ফোল্ডারে .htaccess ফাইলটি খুঁজে ডান ক্লিক করুন এবং Edit অপশনটি নির্বাচন করুন:


নোট: নিশ্চিত করুন "Show Hidden Files (dotfiles)" Settings মেনুতে চালু আছে:


৪. যদি File Manager-এ .htaccess ফাইল না থাকে, তাহলে + File বাটন দিয়ে নতুন একটি তৈরি করতে পারেন:


৫. এখন আপনি নিজের কনফিগারেশন নিয়ম যোগ করে সংরক্ষণ করতে প্রস্তুত।
   

সাধারণত ব্যবহৃত .htaccess নিয়মের তালিকা

ব্লকিং 

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

নির্দিষ্ট ব্লকিং নিয়ম প্রয়োগ করতে, নিচের মতো একটি .htaccess ফাইল তৈরি করুন:

(সবাইকে প্রবেশাধিকার দিতে এবং X.X.X.X আইপি ঠিকানার ব্যবহারকারীদের ব্লক করতে)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(নির্দিষ্ট X.X.X.X এবং Y.Y.Y.Y আইপি ছাড়া সকল ভিজিটরকে ব্লক করতে)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

নোট: নতুন Require ডিরেক্টিভের সাথে পুরনো Allow, Deny এবং Order ডিরেক্টিভ ব্যবহার করবেন না

Mod_Rewrite (রিডাইরেক্ট নিয়ম)

Mod_Rewrite নির্ধারণ করে ওয়েব পেজ ও URL ভিজিটরদের কাছে কিভাবে উপস্থাপিত হবে।

ডিফল্টভাবে, Mod_Rewrite একটি URL-কে সংশ্লিষ্ট ফাইল সিস্টেম পাথে ম্যাপ করে। তবে, এটি একটি URL-কে অন্য URL-এও রিডাইরেক্ট করতে পারে।

রিডাইরেক্ট সেটআপ করার আগে, আপনার প্রয়োজন অনুযায়ী সঠিক রিডাইরেকশনের ধরন বেছে নেওয়া গুরুত্বপূর্ণ:

  • স্থায়ী রিডাইরেক্ট (301): এই রিডাইরেক্ট 301 স্ট্যাটাস কোড পাঠায়, যা নির্দেশ করে যে পেজটি স্থায়ীভাবে সরানো হয়েছে। এটি ব্রাউজারে ক্যাশে হয় এবং সার্চ ইঞ্জিন ও ইউজার এজেন্টদের তাদের ডাটাবেসে URL আপডেট করতে সংকেত দেয়। এটি সবচেয়ে সাধারণ রিডাইরেক্ট।

  • অস্থায়ী রিডাইরেক্ট (302): এই রিডাইরেক্ট 302 স্ট্যাটাস কোড পাঠায়, যা নির্দেশ করে যে স্থানান্তরটি অস্থায়ী। ব্রাউজার এটি ক্যাশে করবে না এবং ভিজিটর ও সার্চ ইঞ্জিনকে রিডাইরেক্ট করলেও, মূল পেজটি ইনডেক্সে থাকবে। আপনি যদি নিশ্চিত না হন যে ভবিষ্যতে URL পরিবর্তন হবে না, তাহলে এই ধরনের রিডাইরেক্টই সুপারিশ করা হয়।

নিচে কিছু সবচেয়ে সাধারণ ও কার্যকর রিডাইরেক্টের তালিকা দেওয়া হলো, যা .htaccess ফাইলের মাধ্যমে কনফিগার করা যায়:

স্থায়ী রিডাইরেক্ট example1.com থেকে example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

অস্থায়ী রিডাইরেক্ট exampledomain1.com থেকে exampledomain2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

নোট: নিচে স্থায়ী রিডাইরেক্টের উদাহরণ দেওয়া হয়েছে। অস্থায়ী রিডাইরেক্ট নির্ধারণ করতে কোডের শেষে [R=301,L] এর পরিবর্তে [R=302,L] ব্যবহার করুন (যেখানে প্রয়োজন)।

রিডাইরেক্ট example1.com/subfolder থেকে example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

HTTP থেকে HTTPS-এ রিডাইরেক্ট উদাহরণস্বরূপ example.com এর জন্য

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

অথবা

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

non-WWW থেকে WWW-তে রিডাইরেক্ট

  • যেকোনো ডোমেইনের জন্য, .htaccess কার্যকর হয়:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • নির্দিষ্ট ডোমেইনের জন্য:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

WWW থেকে non-WWW-তে রিডাইরেক্ট

  • যেকোনো ডোমেইনের জন্য .htaccess কার্যকর হয়:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • নির্দিষ্ট ডোমেইনের জন্য:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

RewriteRule (.*) http://example.com/$1 [R=301,L]

example.com-এর সব পেজকে সংশ্লিষ্ট domain.com পেজে রিডাইরেক্ট করুন

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

নোট: উভয় ডোমেইনে পেজের নাম অবশ্যই মিলতে হবে, নাহলে রিডাইরেক্ট "Page not Found" বার্তা দেখাবে।

একটি পেজকে নতুন URL-এ রিডাইরেক্ট করুন

Redirect 301 /old_page.html http://www.domain.com/new_page.html

নোট: এই কৌশলটি ডিলিট করা পেজকে 404 তে রিডাইরেক্ট করতে বা কনটেন্ট রেফারেন্স আপডেট করার পর SEO অ্যাডজাস্টমেন্টের জন্য কার্যকর।

অনুমোদন/প্রমাণীকরণ 

এই ধরনের নিয়ম ডিরেক্টরি বা সাবডিরেক্টরির জন্য নিরাপত্তা সীমাবদ্ধতা নির্ধারণ করে। আপনি ডিরেক্টরিগুলো পাসওয়ার্ড-প্রটেক্ট করতে পারেন, যাতে কেউ প্রবেশ করতে চাইলে ইউজারনেম ও পাসওয়ার্ড দিতে হয়।

এই সুরক্ষা সেটআপ করতে:  

১. আপনি যে ডিরেক্টরিটি সুরক্ষিত করতে চান, তা /home/cpanel_user/.htpasswds/ ফোল্ডারের মধ্যে তৈরি করুন (যেমন, domain.com/test এর জন্য, পাথ হবে .htpasswds/domain.com/test/)।

২. এই ডিরেক্টরিতে একটি passwd ফাইল তৈরি করুন এবং একটি অনলাইন জেনারেটর ব্যবহার করে হ্যাশ করা অ্যাক্সেস ক্রেডেনশিয়াল যোগ করুন।

৩. নিচের ডিরেক্টিভগুলো .htaccess ফাইলে যোগ করুন:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

কাস্টম এরর পেজ

এই ফিচারটি আপনাকে আপনার ওয়েবসাইটের জন্য ব্যক্তিগতকৃত এরর পেজ তৈরি করতে দেয়। এটি একটি কার্যকর অপশন, কারণ এটি ভিজিটরদের এমন একটি এরর বার্তা দেখাতে দেয় যা আপনার ওয়েবসাইটের থিমের সাথে সামঞ্জস্যপূর্ণ, যদি কোনো ব্রোকেন URL থাকে। এতে ডিফল্ট '404 File Not Found' এরর দেখানোর পরিবর্তে কাস্টম ডিজাইন করা এরর পেজ দেখানো যায়, যাতে ইউজাররা সহজে ওয়েবসাইট কনটেন্টে ফিরে যেতে পারে এবং বিভ্রান্তি এড়ানো যায়।

কাস্টম এরর পেজ সেটআপ করতে, নিচের টেক্সটটি একটি .htaccess ফাইলে যোগ করুন:

ErrorDocument 404 /404.html

এই লাইনটি Apache ওয়েব সার্ভারকে নির্দেশ দেয়, যখনই 404 (File Not Found) এরর হবে, তখন ডোমেইনের রুট ডিরেক্টরিতে থাকা 404.html ফাইল লোড করতে।

নোট: অন্যান্য এররের (যেমন 403 বা 500) জন্য কাস্টম এরর পেজ তৈরি করতে, শুধু 404 পরিবর্তে সংশ্লিষ্ট এরর কোড এবং /404.html আপনার কাস্টম এরর ফাইলের পাথ দিয়ে প্রতিস্থাপন করুন।

বিদ্যমান .htaccess নিয়ম নিষ্ক্রিয় করা

আপনি যদি অস্থায়ীভাবে কিছু বিদ্যমান নিয়ম নিষ্ক্রিয় করতে চান, যেমন টেস্টিংয়ের জন্য, তাহলে সহজেই সেগুলো কমেন্ট করতে পারেন। এটি করতে, লাইনের শুরুতে একটি হ্যাশ (#) চিহ্ন যোগ করুন।

বিকল্পভাবে, আপনি একটি লাইন বা একাধিক লাইন নির্বাচন করে Ctrl + / শর্টকাট ব্যবহার করে নিষ্ক্রিয় করতে পারেন।

একটি বৈধ ইমেইল প্রয়োজন