অ্যাপাচে Mod_rewrite সহ অভ্যন্তরীণ পুনঃনির্দেশ কিভাবে সম্পাদন করবেন


এই নিবন্ধে এবং পরবর্তীটিতে আমরা কীভাবে Mod_rewrite ব্যবহার করবেন, কোনও ওয়েবসাইটের অন্য পৃষ্ঠাগুলিতে নির্দিষ্ট HTTP অনুরোধগুলি ম্যাপ করতে বা কোনও বাহ্যিক URL- এ ব্যাখ্যা করব।

অন্য কথায়, এই সুপরিচিত অ্যাপাচি মডিউল আপনাকে অন্যের কাছে একটি ইউআরএল পুনর্নির্দেশের অনুমতি দেবে, যা আমরা ব্যবহারিক উদাহরণগুলির মাধ্যমে চিত্রিত করব।

দ্রষ্টব্য: নীচের উদাহরণগুলি ধরে নিলে আপনি পার্ল সামঞ্জস্যপূর্ণ নিয়মিত এক্সপ্রেশন (পিসিআরই) এর সাথে কিছুটা হলেও পরিচিত। যেহেতু বিষয়টি এই নিবন্ধের আওতার বাইরে রয়েছে, তাই পিসিআরই সম্পর্কিত আরও তথ্যের জন্য পার্ল 5 সংস্করণ 24.0 ডক্সটি দেখুন।

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

# a2enmod rewrite

Mod_rewrite মডিউলটি ব্যবহার করার জন্য অ্যাপাচি কনফিগার করা

সরলতার জন্য, কীভাবে Mod_rewrite (ডকুমেন্টরুট:/var/www/html, কনফিগারেশন ফাইল: /etc/httpd/conf/httpd.conf) ব্যবহার করতে হয় সে সম্পর্কে ব্যাখ্যা করতে একটি CentOS 7 বাক্সে (আইপি 192.168.0.100) ডিফল্ট সাইটটি ব্যবহার করা যাক।

অ্যাপাচি এই মডিউলটি ব্যবহার করার জন্য, কনফিগারেশন ফাইলে নিম্নলিখিত লাইনটি যুক্ত করুন:

RewriteEngine on

এটি লক্ষণীয় যে এই কনফিগারেশনটি একই বাক্সে ভার্চুয়াল হোস্টগুলির দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হবে না।

সুতরাং, যেখানে আপনি পুনর্লিখনের নিয়ম ব্যবহার করতে চান সেখানে প্রতিটি ভার্চুয়াল হোস্টের জন্য আপনাকে পুনর্লিখনইঙ্গিন যুক্ত করতে হবে।

একটি অভ্যন্তরীণ পুনঃনির্দেশ মোড_আরাইটের সহজতম উদাহরণ। যদি আপনি default.aspx- এর জন্য সমস্ত অনুরোধকে সূচক। Html এ পুনঃনির্দেশ করতে চান তবে রাইরাইটইঞ্জাইন এর নীচে নিম্নলিখিত লাইনটি (পুনরায় লেখার নিয়ম হিসাবেও পরিচিত) যুক্ত করুন:

RewriteRule "^/default\.aspx$" "/index.html"

এবং পরিবর্তনগুলি কার্যকর হওয়ার জন্য অ্যাপাচি পুনরায় চালু করতে ভুলবেন না।

আপনার সাইটটি মূলত এএসপি ব্যবহার করে ডিজাইন করা হয়েছিল এবং পরে প্লেইন এইচটিএমএল 5 এ পরিবর্তিত হলে এটি কার্যকর হতে পারে। অনুসন্ধান ইঞ্জিনগুলিতে .aspx ফাইল সূচিবদ্ধ থাকবে তবে সেই ফাইলটির আর কোনও অস্তিত্ব নেই।

সেক্ষেত্রে আপনাকে অনুরোধটি পুনর্নির্দেশের জন্য একটি উপায় খুঁজতে হবে যাতে আপনার সম্ভাব্য দর্শকরা কোনও ত্রুটির পৃষ্ঠায় না চলে। পরীক্ষার জন্য, নীচের বিষয়বস্তু সহ index.html এর ভিতরে/var/www/html নামে একটি সাধারণ HTML ফাইল তৈরি করুন:

<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title>New site</title>
  </head>
  <body>
	<h2>Default.aspx was here, but now it's index.html</h2>
  </body>
</html>

ক্যারেট এবং ডলারের লক্ষণগুলি নিয়মিত অভিব্যক্তি /ডিফল্ট দিয়ে শুরু করে এবং যথাক্রমে .aspx এর সাথে শেষ হওয়া কোনও স্ট্রিংয়ের সাথে মেলে।

এখন আপনার ব্রাউজারটি চালু করুন এবং এটি 192.168.0.100/default.aspx এ নির্দেশ করুন। যদি বিষয়গুলি প্রত্যাশা অনুযায়ী চলে যায় তবে অ্যাপাচি এর পরিবর্তে সূচক html পরিবেশন করা উচিত
যাইহোক, শেষ ব্যবহারকারীটি এখনও পরিবর্তন কোডটিকে স্বচ্ছ হওয়ার কারণে ঠিকানা দন্ডে ডিফল্ট.এসপিএক্স দেখতে পাবেন:

আপনি যদি ঠিকানা বারের URL টি দেখতে চান যে সার্ভারটি প্রকৃতপক্ষে default.aspx নামের পৃষ্ঠার পরিবর্তে index.html পরিবেশন করছে তবে এটি [আর, এল] পুনরায় লেখার নিয়মের শেষে নীচে:

RewriteRule "^/default\.aspx$" "/index.html" [R,L]

এখানে [আর, এল] দুটি বিকল্প gs

ঠিকানার বারটি এখন আগের কোডটির মতো default.aspx এর পরিবর্তে প্রত্যাশা অনুযায়ী index.html কে কীভাবে দেখায় তা নোট করুন।

এই নিবন্ধে আমরা অভ্যন্তরীণ পুনঃনির্দেশ সঞ্চালনের জন্য মোড_উইরাইট কীভাবে ব্যবহার করব তা ব্যাখ্যা করেছি। পরের পোস্টের সাথে থাকুন যেখানে আমরা অন্য সার্ভারে স্থানান্তরিত হওয়া কোনও সংস্থানতে কীভাবে পুনর্নির্দেশ করতে হবে এবং পতাকাগুলি কীভাবে পুনরায় লিখন করব তা শিখব।

বরাবরের মতো, নীচের মন্তব্য ফর্মটি ব্যবহার করতে নির্দ্বিধায় যদি এই নিবন্ধটি সম্পর্কে আপনার কোনও প্রশ্ন বা প্রতিক্রিয়া থাকে। আমরা আপনার কাছ থেকে শ্রবণ করার জন্য উন্মুখ!