Yii ফ্রেমওয়ার্কে রাউটিং (Routing) এবং URL ম্যানেজমেন্ট (URL Management) হল দুটি গুরুত্বপূর্ণ বিষয় যা ওয়েব অ্যাপ্লিকেশন এর নেভিগেশন এবং ইউআরএল কনফিগারেশন নিয়ন্ত্রণ করতে সাহায্য করে। রাউটিং একটি প্রক্রিয়া যার মাধ্যমে ইনকামিং URL গুলিকে সংশ্লিষ্ট কন্ট্রোলার এবং অ্যাকশন মেথডে ম্যাপ করা হয়। Yii ফ্রেমওয়ার্ক URL গুলোকে অত্যন্ত কাস্টমাইজড এবং সুন্দরভাবে পরিচালনা করার সুবিধা প্রদান করে।
রাউটিং (Routing) কী?
রাউটিং হল প্রক্রিয়া যেখানে ইউআরএল গুলো কন্ট্রোলার এবং অ্যাকশনে ম্যাপ করা হয়। Yii ফ্রেমওয়ার্কের রাউটিং ব্যবস্থা অত্যন্ত শক্তিশালী এবং কাস্টমাইজযোগ্য। এটি URL এর মাধ্যমে নির্দিষ্ট কন্ট্রোলার এবং অ্যাকশন মেথড নির্বাচন করে।
রাউটিং গঠন
Yii 2 ফ্রেমওয়ার্কে রাউটিং গঠন সাধারণত নিম্নলিখিত রূপে থাকে:
index.php?r=controller/action
এখানে:
- controller: কন্ট্রোলারের নাম
- action: কন্ট্রোলারের অ্যাকশনের নাম
যেমন:
index.php?r=site/index
এটি SiteController এর actionIndex() মেথডের সাথে সম্পর্কিত।
Yii 2 রাউটিং কনফিগারেশন
Yii 2-এ রাউটিং কনফিগারেশন config/web.php ফাইলে করা হয়। এখানে আপনি URL এর পাথ (path) এবং অ্যাকশন কাস্টমাইজ করতে পারবেন।
ডিফল্ট রাউটিং কনফিগ
'components' => [
'urlManager' => [
'enablePrettyUrl' => true, // প্রিটি ইউআরএল অ্যাকটিভ করা
'showScriptName' => false, // URL এ index.php না দেখানোর জন্য
'rules' => [
// কাস্টম রুলস এখানে যোগ করা যাবে
'about' => 'site/about',
],
],
],
- enablePrettyUrl: এই অপশনটি
trueকরলে আপনি প্রিটি ইউআরএল ব্যবহার করতে পারবেন। - showScriptName: এই অপশনটি
falseকরলে URL থেকেindex.phpলুকিয়ে যাবে এবং আরও পরিষ্কার ইউআরএল পাওয়া যাবে। - rules: এটি কাস্টম URL রুলস তৈরি করার জন্য ব্যবহার করা হয়। আপনি যেকোনো কাস্টম URL পাথ তৈরি করতে পারেন এবং তা নির্দিষ্ট কন্ট্রোলার বা অ্যাকশনে রিডাইরেক্ট করতে পারেন।
প্রিটি ইউআরএল (Pretty URL)
Yii 2-এ Pretty URL সুবিধাটি খুবই গুরুত্বপূর্ণ। এটি ইউআরএলকে আরও পরিষ্কার এবং মানব-পাঠযোগ্য (human-readable) করে তোলে।
Pretty URL কনফিগারেশন
'components' => [
'urlManager' => [
'enablePrettyUrl' => true, // প্রিটি ইউআরএল ব্যবহার করা
'showScriptName' => false, // index.php লুকিয়ে রাখা
],
],
এটি index.php?r=site/about এর পরিবর্তে site/about এর মতো একটি URL গঠন করবে।
কাস্টম রাউট রুল
'rules' => [
'contact' => 'site/contact', // 'contact' URL কে SiteController এর contact অ্যাকশনে রিডাইরেক্ট করবে
'news/<id:\d+>' => 'news/view', // এখানে <id> একটি প্যারামিটার
],
উপরের কাস্টম রুলে, news/1 ইউআরএলটি NewsController এর actionView() মেথডে যাবে, যেখানে id প্যারামিটার ১ হবে।
URL প্যারামিটার
Yii 2 রাউটিং সিস্টেম প্যারামিটার পাস করার জন্য খুবই সহজ পদ্ধতি প্রদান করে। URL এর অংশ হিসেবে আপনি প্যারামিটার দিতে পারেন এবং সেগুলো কন্ট্রোলারের অ্যাকশন মেথডে অ্যাক্সেস করতে পারবেন।
প্যারামিটার সহ রাউটিং
'rules' => [
'product/<id:\d+>' => 'product/view',
],
এখানে, product/5 URL টি ProductController এর actionView() অ্যাকশনে id = 5 পাঠাবে।
কন্ট্রোলারে প্যারামিটার গ্রহণ
public function actionView($id)
{
// এখানে $id প্যারামিটারটি ব্যবহার করা হবে
return $this->render('view', ['id' => $id]);
}
কাস্টম রাউটিং উদাহরণ
ধরা যাক, আপনি একটি ব্লগ অ্যাপ্লিকেশন তৈরি করছেন যেখানে পোস্ট দেখানোর জন্য একটি URL গঠন করতে চান।
'rules' => [
'post/<slug>' => 'post/view',
],
এখন, post/my-first-post ইউআরএলটি PostController এর actionView() অ্যাকশনে যাবে এবং slug প্যারামিটার পাঠাবে।
কন্ট্রোলারে প্যারামিটার গ্রহণ
public function actionView($slug)
{
$post = Post::findOne(['slug' => $slug]);
return $this->render('view', ['post' => $post]);
}
রাউটিং কনসোল অ্যাপ্লিকেশন
Yii ফ্রেমওয়ার্কে কনসোল অ্যাপ্লিকেশনেও রাউটিং ব্যবহৃত হয়। কনসোল অ্যাপ্লিকেশনটির জন্য রাউটিং config/console.php ফাইলে কনফিগার করা হয়।
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
],
],
এটি কনসোল কমান্ডের মাধ্যমে ইউআরএল রাউটিং পরিচালনা করতে সাহায্য করবে।
সারাংশ
Yii ফ্রেমওয়ার্কে রাউটিং এবং URL ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ অংশ। এটি কাস্টম URL গঠন করতে, প্রিটি ইউআরএল ব্যবহার করতে এবং প্যারামিটার সহ রাউটিং করতে সহায়তা করে। Pretty URL এবং কাস্টম রুলস ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের ইউআরএল গুলোকে আরও সুন্দর, পরিষ্কার এবং SEO-বান্ধব করতে পারবেন। Yii 2-এর রাউটিং ব্যবস্থা অত্যন্ত শক্তিশালী এবং এটি URL-কে কাস্টমাইজ করতে দারুণ সুবিধা প্রদান করে।
Yii ফ্রেমওয়ার্কের রাউটিং সিস্টেম অ্যাপ্লিকেশন URL গুলি কীভাবে কন্ট্রোলার এবং অ্যাকশন ফাংশনে ম্যাপ করা হবে, তা নির্ধারণ করে। রাউটিং সিস্টেমটি কাস্টম URL তৈরি করতে, ইউজারকে ভিন্ন ভিন্ন কন্ট্রোলার বা অ্যাকশনে রিডিরেক্ট করতে এবং আরও অনেক কিছু করতে সহায়তা করে। Yii রাউটিং সিস্টেমটি খুবই শক্তিশালী এবং কনফিগারেশন ও কাস্টমাইজেশনে খুবই নমনীয়।
Yii এর রাউটিং সিস্টেমের মূল ধারণা
Yii ফ্রেমওয়ার্কের রাউটিং সিস্টেমের প্রধান কাজ হলো URL গুলো কন্ট্রোলার ও অ্যাকশন ফাংশনে রিডাইরেক্ট করা। এটি URL এর প্যাটার্ন এবং রুল নির্ধারণ করে। Yii ফ্রেমওয়ার্ক URL এর মাধ্যমে কোন কন্ট্রোলার এবং তার অ্যাকশন চালানো হবে তা জানে।
রাউটিং সিস্টেমের মৌলিক উপাদান:
URL Structure:
Yii 2 রাউটিং সিস্টেমে URL গুলি সাধারণত এরকম রূপে থাকে:http://example.com/index.php?r=controller/actionএখানে
controllerহলো কন্ট্রোলারের নাম এবংactionহলো অ্যাকশনের নাম।- Controller and Action:
URL এর মাধ্যমে, Yii কন্ট্রোলার এবং অ্যাকশন ফাংশন নির্বাচন করে। উদাহরণস্বরূপ, একটি URLhttp://example.com/index.php?r=site/indexএর মাধ্যমেSiteControllerকন্ট্রোলারেরactionIndexফাংশনটি কল করা হবে।
Yii রাউটিং সিস্টেমের কনফিগারেশন
Yii ফ্রেমওয়ার্কে রাউটিং সিস্টেম কনফিগার করা হয় প্রধানত config/web.php কনফিগারেশন ফাইলে।
১. Basic Routing (ডিফল্ট রাউটিং)
Yii-তে সাধারণভাবে রাউটিং কনফিগারেশন সহজ। ডিফল্টভাবে, URL গুলি index.php?r=controller/action ফর্ম্যাটে থাকে। সাধারণ রাউটিং কনফিগারেশন এরকম হতে পারে:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'site/index' => 'site/index', // SiteController-এর index অ্যাকশন
],
],
],
enablePrettyUrl: এই সেটিংটিtrueকরলে Yii সুন্দর (SEO-friendly) URL তৈরি করতে সক্ষম হয়, যেমন:site/indexপরিবর্তেindex.php?r=site/index।showScriptName: এই সেটিংটিfalseকরলে URL থেকেindex.phpসরানো হয়।rules: এখানে কাস্টম URL রুল দেওয়া যায়। এটি URL এর বিশেষ প্যাটার্নগুলো ম্যানেজ করে এবং কন্ট্রোলার এবং অ্যাকশনে রিডাইরেক্ট করতে সহায়তা করে।
২. Pretty URL
Pretty URL সিস্টেম Yii 2-এ ডিফল্টরূপে সক্রিয় থাকে না, তবে এটি ব্যবহার করা সহজ। Pretty URL ব্যবহার করতে urlManager কম্পোনেন্ট কনফিগার করে enablePrettyUrl সেটিংটিকে true করতে হয়।
'components' => [
'urlManager' => [
'enablePrettyUrl' => true, // Pretty URL সক্ষম
'showScriptName' => false, // index.php URL থেকে সরানো
'rules' => [
'about' => 'site/about', // www.example.com/about => site/about অ্যাকশন
],
],
],
এখন, আপনি http://example.com/about এর মাধ্যমে SiteController এর actionAbout ফাংশনটি কল করতে পারবেন।
৩. Custom Routes (কাস্টম রাউট)
Yii আপনাকে URL এর রুল কাস্টমাইজ করতে দেয়। উদাহরণস্বরূপ, যদি আপনি চান URL দেখতে এমন হয় http://example.com/category/10, যেখানে category অ্যাকশনটি CategoryController তে থাকে এবং 10 হলো প্যারামিটার, তবে সেটি করতে পারেন:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'category/<id:\d+>' => 'category/view', // category/10 -> CategoryController এর view অ্যাকশন
],
],
],
এখানে, <id:\d+> হলো URL প্যারামিটার যা সংখ্যার জন্য সংজ্ঞায়িত করা হয়েছে। এর মাধ্যমে category/10 URL দ্বারা CategoryController এর actionView ফাংশন কল করা হবে এবং 10 প্যারামিটার হিসাবে পাঠানো হবে।
Yii রাউটিং সিস্টেমের উন্নত ফিচার
Yii রাউটিং সিস্টেমে কিছু উন্নত ফিচার রয়েছে, যা আপনার অ্যাপ্লিকেশনের URL রাউটিং আরও শক্তিশালী ও নমনীয় করে তোলে।
১. URL Parameterization (প্যারামিটার ব্যবহার)
আপনি URL প্যারামিটার ব্যবহার করে কাস্টম প্যারামিটার পাস করতে পারেন। উদাহরণস্বরূপ, http://example.com/product/123 URL-এর মধ্যে 123 প্যারামিটার হিসেবে পাঠানো হবে। এর মাধ্যমে আপনি URL এর ডাইনামিক কনটেন্ট পরিচালনা করতে পারেন।
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'product/<id:\d+>' => 'product/view',
],
],
],
২. Default Routes (ডিফল্ট রাউট)
Yii-তে আপনি ডিফল্ট রাউট সেট করতে পারেন, যেমন ওয়েব অ্যাপ্লিকেশনের প্রধান পেজ বা প্রথম পেজ। ডিফল্ট রাউটগুলি এমনভাবে কনফিগার করা হয় যাতে যদি কেউ নির্দিষ্ট কন্ট্রোলার বা অ্যাকশন উল্লেখ না করে, তবে সেই ডিফল্ট রাউটটি ব্যবহার করা হয়।
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index', // যদি কোন রাউট নির্দিষ্ট না করা হয়, তাহলে site/index কে ডিফল্ট হিসেবে ব্যবহার হবে
],
],
],
৩. Regex Based Routes (রেগুলার এক্সপ্রেশন ভিত্তিক রাউট)
Yii রাউটিং সিস্টেমে রেগুলার এক্সপ্রেশনও ব্যবহার করা যেতে পারে, যা আপনাকে আরও বেশি কাস্টমাইজড URL রুলস তৈরি করতে সাহায্য করে। উদাহরণস্বরূপ, আপনি চান শুধুমাত্র কিছু নির্দিষ্ট প্যাটার্নের প্যারামিটার গ্রহণ করা হোক:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'post/<slug:[a-zA-Z0-9-]+>' => 'post/view', // শুধুমাত্র অক্ষর ও সংখ্যা অনুমোদিত
],
],
],
সারাংশ
Yii ফ্রেমওয়ার্কের রাউটিং সিস্টেম খুবই শক্তিশালী এবং নমনীয়, যা URL প্যাটার্ন ও কাস্টম রুলের মাধ্যমে কন্ট্রোলার এবং অ্যাকশনকে সঠিকভাবে ম্যাপ করে। আপনি সহজেই Pretty URLs, কাস্টম রাউট, প্যারামিটার ব্যবহার এবং রেগুলার এক্সপ্রেশন ভিত্তিক রাউট ব্যবহার করতে পারেন। Yii রাউটিং সিস্টেম এর মাধ্যমে ওয়েব অ্যাপ্লিকেশনের URL কাঠামো সম্পূর্ণভাবে কাস্টমাইজ এবং নিয়ন্ত্রণ করা যায়, যা SEO-বান্ধব এবং ইউজার ফ্রেন্ডলি।
Yii ফ্রেমওয়ার্কে URL Rules এবং Routing Configuration অ্যাপ্লিকেশনের URL কিভাবে রিডিরেক্ট হবে, কোন কন্ট্রোলার এবং অ্যাকশন এই URL-এর জন্য রেসপন্ড করবে তা নির্ধারণ করে। URL রুলস এবং রাউটিং কনফিগারেশন আপনাকে উন্নত এবং পরিষ্কার URL তৈরি করতে সহায়তা করে, যা অ্যাপ্লিকেশনের ব্যবহারের অভিজ্ঞতা উন্নত করে।
URL Rules
Yii ফ্রেমওয়ার্কে URL Rules হল একটি কনফিগারেশন, যা আপনাকে ইউআরএল প্যাটার্ন এবং তার সাথে সম্পর্কিত কন্ট্রোলার এবং অ্যাকশন নির্ধারণ করতে সাহায্য করে। URL রুলস আপনাকে SEO-ফ্রেন্ডলি URL তৈরি করতে সাহায্য করে এবং URL-এর মাধ্যমে নির্দিষ্ট কন্ট্রোলার বা অ্যাকশনে পৌঁছানোর পথ সরল করে।
১. URL Rules কনফিগারেশন ফাইল
Yii 2-এ URL রুলস সাধারণত config/web.php ফাইলে কনফিগার করা হয়। এটির মধ্যে urlManager কম্পোনেন্টের মাধ্যমে ইউআরএল রুলস ডিফাইন করা হয়।
'components' => [
'urlManager' => [
'enablePrettyUrl' => true, // Pretty URL সক্রিয় করা
'showScriptName' => false, // index.php ফাইল লুকিয়ে রাখা
'rules' => [
'about' => 'site/about', // /about URL site কন্ট্রোলারের about অ্যাকশন নির্দেশ করবে
'contact' => 'site/contact', // /contact URL site কন্ট্রোলারের contact অ্যাকশন নির্দেশ করবে
],
],
],
- enablePrettyUrl: এটি যদি
trueথাকে, তবে URL গুলি pretty বা পরিষ্কার ফরম্যাটে থাকে (যেমন:site/about), আর যদিfalseথাকে, তাহলে URL-এindex.phpথাকবে (যেমন:index.php?r=site/about). - showScriptName: এটি
falseকরলেindex.phpফাইলটি URL থেকে লুকিয়ে যাবে। - rules: এখানে URL প্যাটার্ন এবং তার সাথে সম্পর্কিত কন্ট্রোলার এবং অ্যাকশন উল্লেখ করা হয়।
URL Rules উদাহরণ
স্ট্যাটিক পেজের URL তৈরি: যদি আপনার অ্যাপ্লিকেশনে
aboutএবংcontactনামে দুটি স্ট্যাটিক পেজ থাকে, আপনি নিচের রুল ব্যবহার করতে পারেন:'rules' => [ 'about' => 'site/about', 'contact' => 'site/contact', ],এখানে
/aboutইউআরএলsite/aboutঅ্যাকশন নির্দেশ করবে এবং/contactইউআরএলsite/contactঅ্যাকশন নির্দেশ করবে।ডাইনামিক প্যারামিটার সহ URL: যদি আপনি ডাইনামিক প্যারামিটার ব্যবহার করতে চান, যেমন: প্রোডাক্টের বিস্তারিত দেখানোর জন্য:
'rules' => [ 'product/<id:\d+>' => 'product/view', ],এই রুলে
/product/5URLটিproductকন্ট্রোলারেরviewঅ্যাকশন কল করবে এবংid=5প্যারামিটারটি ঐ অ্যাকশনে পাস করবে।অ্যাপ্লিকেশনের মডিউল সহ URL: আপনি যদি অ্যাপ্লিকেশনে মডিউল ব্যবহার করেন, তবে মডিউল এবং অ্যাকশনের URL রুল কনফিগার করতে পারেন:
'rules' => [ 'admin/<controller:\w+>/<action:\w+>' => 'admin/<controller>/<action>', ],এটি
/admin/site/indexURL-এadminমডিউলেরsiteকন্ট্রোলারেরindexঅ্যাকশন নির্দেশ করবে।নেস্টেড রুলস: আপনি নেস্টেড রুলসও ব্যবহার করতে পারেন, যেমন:
'rules' => [ 'news/<category:\w+>/<id:\d+>' => 'news/view', ],এই রুলটি
/news/technology/10ইউআরএলটিnewsকন্ট্রোলারেরviewঅ্যাকশন কল করবে এবংcategory=technologyওid=10প্যারামিটার পাস করবে।
Routing Configuration
Yii ফ্রেমওয়ার্কে Routing হল ইউআরএল রুলের মাধ্যমে কন্ট্রোলার এবং অ্যাকশন নির্ধারণের প্রক্রিয়া। রাউটিং কনফিগারেশন সাধারণত urlManager কম্পোনেন্টের মাধ্যমে করা হয়, যা URL রুলস এবং অ্যাপ্লিকেশনের কাঠামো নিয়ন্ত্রণ করে।
১. Routing কনফিগারেশন (Basic Example)
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'news/<category:\w+>' => 'news/index', // Dynamic category URL
'product/<id:\d+>' => 'product/view', // Dynamic product URL
],
],
],
এখানে আমরা news এবং product অ্যাকশনগুলোকে কাস্টম URL প্যাটার্নের মাধ্যমে রাউট করেছি।
২. Default Route
Yii ফ্রেমওয়ার্কের একটি ডিফল্ট রাউটও থাকে যা মূল অ্যাকশন কল করার জন্য ব্যবহৃত হয়, যদি ইউআরএলটি কাস্টম রুলের সাথে মেলানো না যায়।
'defaultRoute' => 'site/index', // default route
এটি অ্যাপ্লিকেশনকে নির্দেশ করে যে যদি কোন কাস্টম URL না পাওয়া যায়, তবে site/index অ্যাকশন কল হবে।
৩. Complex Routing Example
আপনি আরও জটিল রাউটিং কনফিগারেশন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটি অ্যাডমিন প্যানেল এবং ফ্রন্টএন্ড অংশ নিয়ে তৈরি হয়:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'admin/<controller:\w+>/<action:\w+>' => 'admin/<controller>/<action>',
'profile/<username:\w+>' => 'user/profile',
],
],
],
এখানে /admin/post/create URLটি admin কন্ট্রোলারের post অ্যাকশন কল করবে এবং /profile/john URLটি user/profile অ্যাকশন কল করবে যেখানে username=john প্যারামিটার পাস হবে।
সারাংশ
- URL Rules হল সেই নিয়মাবলী যা URL প্যাটার্ন এবং সংশ্লিষ্ট কন্ট্রোলার অ্যাকশনের মধ্যে সম্পর্ক স্থাপন করে।
- Routing Configuration URL রুলস কনফিগারেশনের মাধ্যমে রাউটিং এবং ইউআরএল প্যাটার্ন নির্ধারণ করে, যা অ্যাপ্লিকেশন ব্যবহারে সহায়ক হয়।
- Yii ফ্রেমওয়ার্কে URL রুলস এবং রাউটিং কনফিগারেশন অ্যাপ্লিকেশনের সার্বিক কাঠামো এবং SEO ফ্রেন্ডলি URL তৈরি করতে সাহায্য করে।
Yii ফ্রেমওয়ার্কে Friendly URLs এবং SEO Optimization খুবই গুরুত্বপূর্ণ দুটি বৈশিষ্ট্য, যা ওয়েবসাইটের ব্যবহারযোগ্যতা (Usability) এবং সার্চ ইঞ্জিনে সেরা র্যাংকিং পেতে সাহায্য করে। এই দুটি ফিচারকে ঠিকভাবে কনফিগার করা হলে আপনার অ্যাপ্লিকেশন ওয়েব সার্চে ভালো পারফর্ম করতে পারে এবং ইউজারদের জন্য আরও অ্যাক্সেসিবল হয়ে ওঠে।
Friendly URLs কি?
Friendly URLs (বা Clean URLs) এমন URLs যা মানুষের জন্য সহজে পড়তে ও বুঝতে সুবিধাজনক এবং সার্চ ইঞ্জিনের জন্যও ভালো। এই ধরনের URLs সাধারণত URL-এর মধ্যে অতিরিক্ত প্যারামিটার বা কোডের পরিবর্তে অর্থপূর্ণ এবং সহজে চিন্তা করা যায় এমন শব্দ ব্যবহার করে।
Yii ফ্রেমওয়ার্কে Friendly URLs ব্যবহার করার জন্য আপনাকে URL manager কনফিগার করতে হবে। এর মাধ্যমে আপনি অ্যাপ্লিকেশনের URL গুলো সুন্দর এবং সহজ করে তুলতে পারবেন।
Friendly URLs কনফিগার করা:
Yii 2-এ Friendly URLs কনফিগার করতে আপনাকে config/web.php ফাইলে কিছু পরিবর্তন করতে হবে।
urlManagerকনফিগারেশন যোগ করুন:config/web.phpফাইলে নিচের মতো কনফিগারেশন যুক্ত করুন:'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, // Pretty URLs সক্রিয় করা 'showScriptName' => false, // index.php এর প্রদর্শন বন্ধ করা 'rules' => [ // কাস্টম URL রুল 'post/<id:\d+>' => 'post/view', // উদাহরণ: site/post/1 ], ], ],- Pretty URLs চালু করা:
enablePrettyUrlএর মানtrueকরতে হবে, যাতে URLs সুন্দর এবং পরিষ্কারভাবে প্রদর্শিত হয়।showScriptNameএর মানfalseকরতে হবে, যাতেindex.phpঅংশটি URL থেকে সরিয়ে দেওয়া যায়।
উদাহরণ:
- প্রথমে URL:
index.php?r=post/view&id=1 - পরে Friendly URL:
post/1
এটি SEO Optimization এর জন্য ভালো কারণ সার্চ ইঞ্জিনগুলি এমন URL গুলোকে বেশি পছন্দ করে, যেগুলো কনটেন্টের বিষয়বস্তু বোঝাতে সাহায্য করে।
SEO Optimization Yii ফ্রেমওয়ার্কে
Yii ফ্রেমওয়ার্কে SEO Optimization এর জন্য কিছু নির্দিষ্ট কৌশল অনুসরণ করা যায়, যার মাধ্যমে আপনার ওয়েবসাইট বা অ্যাপ্লিকেশন সার্চ ইঞ্জিনে ভালো র্যাংক পেতে পারে। নিচে Yii ফ্রেমওয়ার্কে SEO-কে অপটিমাইজ করার কিছু পদ্ধতি দেওয়া হলো।
১. Meta Tags ব্যবহার করা
Meta tags ওয়েব পেজের গুরুত্বপূর্ণ অংশ, যা সার্চ ইঞ্জিন এবং সোশ্যাল মিডিয়া প্ল্যাটফর্মগুলির জন্য ওয়েব পেজের কনটেন্ট এবং রিলেভেন্স বুঝতে সাহায্য করে। Yii ফ্রেমওয়ার্কে মেটা ট্যাগ ব্যবহারের জন্য কন্ট্রোলারের ভিউতে yii\web\MetaTags ব্যবহার করা যায়।
Meta Tags কনফিগারেশন উদাহরণ:
use yii\helpers\Html;
use yii\web\View;
$this->title = 'My Awesome Page';
$this->registerMetaTag([
'name' => 'description',
'content' => 'This is an awesome page optimized for SEO.'
]);
$this->registerMetaTag([
'name' => 'keywords',
'content' => 'Yii Framework, SEO, Friendly URLs'
]);
$this->registerMetaTag([
'property' => 'og:title',
'content' => 'My Awesome Page'
], 'og');
registerMetaTagফাংশন ব্যবহার করে আপনি মেটা ট্যাগ গুলি ডাইনামিকভাবে যুক্ত করতে পারেন। এতে আপনি পেজের কনটেন্টের সাথে সম্পর্কিত ট্যাগ যেমন description এবং keywords সেট করতে পারবেন।
২. URL Optimization
আবার, SEO-এর জন্য SEO-friendly URLs অত্যন্ত গুরুত্বপূর্ণ। যেমন পূর্বে উল্লেখ করা হয়েছে, Yii-তে Pretty URLs সক্রিয় করা হলে সার্চ ইঞ্জিনগুলির জন্য URL গুলো আরও সহজ ও অর্থপূর্ণ হয়ে ওঠে।
৩. Structured Data (Schema.org) ব্যবহার
Structured Data বা Schema markup হলো একটি ধরনের কোড যা ওয়েব পেজের কনটেন্টের সম্পর্কে সার্চ ইঞ্জিনগুলিকে আরও ভালোভাবে বুঝতে সাহায্য করে। Yii 2-এ structured data ব্যবহারের জন্য আপনি JSON-LD স্কিমা ব্যবহার করতে পারেন।
Structured Data কনফিগারেশন উদাহরণ:
$this->registerJs(
json_encode([
'@context' => 'https://schema.org',
'@type' => 'WebPage',
'name' => 'My Awesome Page',
'description' => 'This is an awesome page optimized for SEO.',
'url' => 'https://www.example.com/my-awesome-page'
]),
View::POS_HEAD
);
এইভাবে আপনি JSON-LD এর মাধ্যমে আপনার পেজের ধরণ এবং বিষয়বস্তুর বিশদ বিবরণ সার্চ ইঞ্জিনগুলিকে দিতে পারেন।
৪. সাইটম্যাপ তৈরি করা
সাইটম্যাপ একটি XML ফাইল যা সার্চ ইঞ্জিনগুলিকে আপনার ওয়েবসাইটের প্রতিটি পেজের অবস্থান জানিয়ে দেয়। Yii-তে সাইটম্যাপ তৈরির জন্য বিভিন্ন এক্সটেনশন বা কাস্টম কোড ব্যবহার করা যেতে পারে।
একটি সাইটম্যাপ তৈরি করতে, Yii অ্যাপ্লিকেশনে একটি সাইটম্যাপ জেনারেটর ইনস্টল করতে হবে এবং তার মাধ্যমে XML ফাইল তৈরি করতে হবে, যা সার্চ ইঞ্জিনগুলোকে আপনার সাইটের পেজগুলোর কাঠামো বুঝতে সাহায্য করবে।
৫. Responsive Design
SEO এর আরেকটি গুরুত্বপূর্ণ দিক হলো ওয়েবসাইটের Mobile Friendly হওয়া। সার্চ ইঞ্জিন, বিশেষ করে গুগল, এখন মোবাইল ফ্রেন্ডলি সাইটগুলিকে পছন্দ করে। Yii ফ্রেমওয়ার্কে আপনি Bootstrap বা অন্যান্য CSS ফ্রেমওয়ার্ক ব্যবহার করে আপনার ওয়েবসাইটের রেসপন্সিভ ডিজাইন নিশ্চিত করতে পারেন।
সারাংশ
- Friendly URLs গুগল এবং অন্যান্য সার্চ ইঞ্জিনগুলির জন্য SEO-ভিত্তিক ওয়েবসাইট তৈরি করার একটি গুরুত্বপূর্ণ উপাদান। Yii 2-এ
urlManagerকনফিগার করে সুন্দর এবং অর্থপূর্ণ URLs তৈরি করা যায়। - SEO Optimization এর জন্য Meta Tags, Structured Data, URL Optimization এবং Responsive Design ব্যবহার করা উচিত।
- Yii ফ্রেমওয়ার্কে এই সব বৈশিষ্ট্য ব্যবহার করলে আপনার ওয়েবসাইট আরও সহজে সার্চ ইঞ্জিনে উচ্চ র্যাংক পেতে সক্ষম হবে এবং ইউজারদের জন্য আরও সহজবোধ্য হবে।
Yii ফ্রেমওয়ার্কে URL রুলস (URL rules) ব্যবহার করে আপনি অ্যাপ্লিকেশন এর URL গুলি কাস্টমাইজ করতে পারেন। এর মাধ্যমে আপনার ওয়েব অ্যাপ্লিকেশনটি আরও পরিষ্কার এবং SEO-friendly হয়। URL rules ব্যবহার করে আপনি কীভাবে URL এর প্যারামিটারগুলিকে কন্ট্রোলারের অ্যাকশনগুলির সাথে ম্যাপ করবেন, তা নির্ধারণ করতে পারেন।
এখানে আমরা Yii 2-এর Custom URL Rules তৈরি করার প্রক্রিয়া আলোচনা করব।
১. Yii 2-এ Custom URL Rule তৈরি করা
Yii 2-এ URL রুলস কনফিগার করা হয় config/web.php ফাইলে, যেখানে আপনি 'urlManager' কম্পোনেন্টের মাধ্যমে URL রুলস সংজ্ঞায়িত করেন।
URL রুলস কনফিগারেশন:
urlManager কম্পোনেন্টের মধ্যে আপনি ডিফল্ট URL স্ট্রাকচার কনফিগার করতে পারেন এবং কাস্টম URL রুলসও যোগ করতে পারেন। Yii 2 URL রুলস সাধারণত রেগুলার এক্সপ্রেশন (regular expressions) ব্যবহার করে কাজ করে।
Basic উদাহরণ:
web.php ফাইলে URL রুলস কনফিগার করা:
config/web.phpফাইলেurlManagerকম্পোনেন্টের মধ্যে 'rules' অংশে কাস্টম URL রুলস সংজ্ঞায়িত করা হয়।উদাহরণস্বরূপ, যদি আপনি চান যে
site/indexএর পরিবর্তেhomeURL ব্যবহার করা হোক, তাহলে আপনি নিম্নলিখিতভাবে কাস্টম URL রুল তৈরি করতে পারেন:'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, // index.php নয় 'rules' => [ 'home' => 'site/index', // 'home' URL এর জন্য 'site/index' অ্যাকশন কল করবে ], ],এখানে:
- 'home' URL প্যাটার্ন হবে, যা 'site/index' কন্ট্রোলারের অ্যাকশন কল করবে।
আরও কাস্টম URL রুলস যোগ করা:
আপনি আরও কাস্টম রুলস যোগ করতে পারেন। যেমন, প্যারামিটার সহ URL:
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ 'product/<id:\d+>' => 'product/view', // 'product/123' -> 'product/view' অ্যাকশন ], ],এখানে:
<id:\d+>প্যারামিটার id কে নির্দিষ্ট সংখ্যার জন্য অনুমোদিত করেছে।product/<id:\d+>এর মাধ্যমে আপনিproduct/viewঅ্যাকশন কল করবেন এবংidপ্যারামিটার পাঠাবেন।
Multiple Parameters সহ কাস্টম URL রুল:
আপনি একাধিক প্যারামিটার সহ কাস্টম URL তৈরি করতে পারেন:
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ 'product/<category:\w+>/<id:\d+>' => 'product/view', // 'product/electronics/123' -> 'product/view' ], ],এখানে:
<category:\w+>প্যারামিটারটি কোনও শব্দ (letters, numbers, underscores) হিসেবে গ্রহণ করবে।<id:\d+>প্যারামিটারটি শুধুমাত্র সংখ্যা গ্রহণ করবে।
২. Custom URL Rule ব্যবহার করা
Custom URL rules ব্যবহারের মাধ্যমে আপনি কিভাবে আপনার ওয়েব অ্যাপ্লিকেশনের URL সুন্দর এবং ব্যবহারকারী বান্ধব করতে পারেন, তার কিছু উদাহরণ:
১. কাস্টম অ্যাকশন সহ URL:
আপনি কাস্টম অ্যাকশন তৈরি করে সেগুলোর জন্য URL কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'about-us' => 'site/about', // 'about-us' URL 'site/about' অ্যাকশন কল করবে
],
],
২. Multi-level URL Rules:
একাধিক স্তরের URL রুলসও তৈরি করা যায়। যেমন:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'category/<slug:\w+>/post/<id:\d+>' => 'post/view', // 'category/tech/post/1' -> 'post/view' অ্যাকশন
],
],
এখানে:
<slug:\w+>প্যারামিটারটি URL-এ category নামের অংশটি গ্রহন করবে, যেমনtech,lifestyle, ইত্যাদি।<id:\d+>প্যারামিটারটিidনামের অংশটি শুধুমাত্র সংখ্যা গ্রহণ করবে।
৩. Dynamic URL Rule (নির্দিষ্ট প্যারামিটার সহ)
কিছু ক্ষেত্রে, আপনি URL এ ডাইনামিক প্যারামিটার ব্যবহার করতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি নির্দিষ্ট বছরের ব্লগ পোস্ট দেখানোর জন্য একটি URL তৈরি করতে পারেন:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'blog/<year:\d{4}>' => 'blog/index', // 'blog/2024' -> 'blog/index' অ্যাকশন
],
],
এখানে:
<year:\d{4}>প্যারামিটারটি URL থেকে ৪ ডিজিটের সংখ্যা গ্রহণ করবে, যেমন2024,2025, ইত্যাদি।
৪. URL Rule কাস্টমাইজেশন এবং Priorities
Yii 2 তে URL রুলসের priority (অগ্রাধিকার) নির্ধারণের মাধ্যমে আপনি রুলগুলির মধ্যে অগ্রাধিকার স্থাপন করতে পারেন। Yii রুলগুলিকে তাদের সিস্টেম অনুযায়ী ব্যবহার করে, তবে আপনি যদি কিছু রুলকে আগে চালাতে চান, তবে তার জন্য priority সেট করতে পারেন।
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
[
'pattern' => 'news/<id:\d+>',
'route' => 'news/view',
'defaults' => ['id' => 1],
'priority' => 1,
],
'about' => 'site/about', // 'about' URL 'site/about' অ্যাকশন কল করবে
],
],
সারাংশ
Yii ফ্রেমওয়ার্কে Custom URL Rules তৈরি করার মাধ্যমে আপনি অ্যাপ্লিকেশনের URL স্ট্রাকচারকে আরও সুন্দর, পরিষ্কার এবং SEO-friendly করতে পারেন। আপনি URL রুলস ব্যবহার করে ডাইনামিক প্যারামিটার সহ URL তৈরি করতে পারবেন এবং অ্যাকশন এবং কন্ট্রোলারগুলির সাথে সেগুলিকে ম্যাপ করতে পারবেন। এই প্রক্রিয়াটি ওয়েব অ্যাপ্লিকেশনের ন্যাভিগেশন এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে সাহায্য করে।
Read more