ساخت URL های دلخواه در PHP

سلام
بنا به درخواست یکی از دوستان تصمبم گرفتم آموزش ساخت URL های دلخواه یا آدرسهای کاربر پسند با استفاده از htaccess رو بذارم.
مزایای اینجور آدرس دهی ها اول اینه که در موتورهای جستجو بهتر شناخته میشه.مزیت دوم هم که برای کاربراست.

 

مثلا سایت twitter رو در نظر بگیرید:

همینطور که میبینید این آدرس پروفایل به راحتی در ذهن کاربرا و هم در ذهن موتورهای جستجو باقی میمونه.
اما آدرسهای دیگه ای مثل آدرس زیر :

یک آدرس کاربر پسند نیست و به راحتی نمیشه به خاطر سپردش.
برای ساخت آدرسهای کاربر پسند دو راه وجود داره.

  1.    استفاده فقط از htaccess

  2.    استفاده از htaceess و php

در هر دو راه باید از فایل htaccess استفاه بشه. پس در ابتدا به آموزش htaccess میپردازیم.

استفاده از htaccess

فایل htaccess در حقیقت فایل تنظیمات وب سرور آپاچیه.
برای ساخت آدرسهای زیبا توسط این فایل ابتدا یک فایل با نام .htaccess بسازید. سپس محتویات زیر رو داخلش بنویسید یا کپی کنید :

حالا به معرفی و توضیح کدهای بالا میپردازیم.
خط اول ممکنه در بعضی هاست ها نیاز باشه برای همین قرارش میدیم
درخط دوم مشخص کردیم که میخوایم از RewriteEngine استفاده کنیم و این ماژول آپاچی رو فعال کردیم.
در خط سوم هیچی ننوشتیم ?
در خط چهارم و پنجم شرطی قرار دادیم که اگر آدرس درخواستی فایل و پوشه نبود بقیه دستورات میتونن اجرا بشن.این دو شرط برای زمانیه که کاربر مثلا فایل example.com/images/logo.png فراخوانی کنه میخوایم که مستقیم فایل رو بهش نمایش بده.

سه خط آخر مهمترین دستورات ما هستن.در هر خط با استفاده از عبارات با قاعده چک میکنیم که اگر با آدرس درخواستی هم سان(مساوی ، مچ ) بود صفحه مقابلش رو لود کنه.
دستور زیر رو در نظر بگیرید :

در این دستور هر وقت url به صورت مثلا www.dlcode.ir/user/123 بود فایل profile.php?id=123 رو درخواست میکنه و به کاربر نمایش میده.
خطوط بعدی هم همینطور.

اگر آدرس مساوی با قسمت rule باشه ،درخواست به  قسمت url به ارسال میشه.
RewriteRule rule url

با استفاده از این روش هر ادرسی رو که دلمون بخواد میتونیم بسازیم. اما مشکلی که این روش داره اینه که اگر تعداد صفحات سایتمون زیاد باشه باید برای همه صفحات یک دستور بنویسیم.
راه حل رفع این مشکل استفاده از روش دوم.

استفاده از htaccess به همراه php

در این روش ابتدا همه درخواست ها رو به فایل index.php ( یا هر فایلی که خواستید) میفرستید. سپس با دستورات php آدرس رو تجزیه میکنید و ازش استفاده میکنید.

برای اینکار در فایل htaccess خطوط زیر رو بنویسید ( محتویات قبلی رو پاک کنید) :

تنها تفاوت این فایل با قسمت قبل دستور خط آخره.
به جای نوشتن دستورات مختلف برای صفحات مختلف سایت در فایل htaccess ، در این قسمت تمام URL ها رو به فایل index.php ارسال میکنیم.که این کار به ما کمک میکنه بقیه کارها رو با دستورات پی اچ پی انجام بدیم.
همینطور که در بالا میبینید همه درخواستهارو در متغیر $_GET[‘param’] ریختیم.
حالا در فایل index.php میتونیم به راحتی از متغیر $_GET استفاده کنیم.

در ابتدا چک کردیم برای خالی نبودن و ست شدن متغیر $_GET[‘[param’] اگر شرط برقرار نبود فایل main.php یا همون صفحه اصلی سایت نمایش داده میشه. در غیر اینصورت چک کردیم که آیا فایل مورد نظر وجود داره یا خیر. اگر وجود داشت include میشه وگرنه به کاربر صفحه ۴۰۴ نمایش داده میشه.


توسط
لینک کوتاه : http://www.dlcode.ir/?p=3336

ممکن است بپسندید

نظر دهید

آدرس ایمیل شما منتشر نمیشود.