ساخت URL های دلخواه با htaccess
|
01-27-2014, 07:45 PM
ارسال: #1
|
|||
|
|||
ساخت URL های دلخواه با htaccess
سلام
بنا به درخواست یکی از دوستان تصمبم گرفتم آموزش ساخت URL های دلخواه یا آدرسهای کاربر پسند با استفاده از htaccess رو بذارم. مزایای اینجور آدرس دهی ها اول اینه که در موتورهای جستجو بهتر شناخته میشه.مزیت دوم هم که برای کاربراست.مثلا سایت twitter رو در نظر بگیرید » همینطور که میبینید این آدرس پروفایل به راحتی در ذهن کاربرا و هم در ذهن موتورهای جستجو باقی میمونه. اما آدرسهای دیگه ای مثل آدرس زیر : دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. یک آدرس کاربر پسند نیست و به راحتی نمیشه به خاطر سپردش. برای ساخت آدرسهای کاربر پسند دو راه وجود داره. استفاده فقط از htaccess استفاده از htaceess و php در هر دو راه باید از فایل htaccess استفاه بشه. پس در ابتدا به آموزش htaccess میپردازیم. استفاده از htaccess فایل htaccess در حقیقت فایل تنظیمات وب سرور آپاچیه. برای ساخت آدرسهای زیبا توسط این فایل ابتدا یک فایل با نام .htaccess بسازید. سپس محتویات زیر رو داخلش بنویسید یا کپی کنید : کد php: Options +FollowSymLinks حالا به معرفی و توضیح کدهای بالا میپردازیم. خط اول ممکنه در بعضی هاست ها نیاز باشه برای همین قرارش میدیم درخط دوم مشخص کردیم که میخوایم از RewriteEngine استفاده کنیم و این ماژول آپاچی رو فعال کردیم. در خط سوم هیچی ننوشتیم در خط چهارم و پنجم شرطی قرار دادیم که اگر آدرس درخواستی فایل و پوشه نبود بقیه دستورات میتونن اجرا بشن.این دو شرط برای زمانیه که کاربر مثلا فایل example.com/images/logo.png فراخوانی کنه میخوایم که مستقیم فایل رو بهش نمایش بده. سه خط آخر مهمترین دستورات ما هستن.در هر خط با استفاده از عبارات با قاعده چک میکنیم که اگر با آدرس درخواستی هم سان(مساوی ، مچ ) بود صفحه مقابلش رو لود کنه. دستور زیر رو در نظر بگیرید : RewriteRule ^users/(\d+)*$ ./profile.php?id=$1 در این دستور هر وقت url به صورت مثلا دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. بود فایل profile.php?id=123 رو درخواست میکنه و به کاربر نمایش میده. خطوط بعدی هم همینطور. اگر آدرس مساوی با قسمت rule باشه ،درخواست به قسمت url به ارسال میشه. RewriteRule rule url با استفاده از این روش هر ادرسی رو که دلمون بخواد میتونیم بسازیم. اما مشکلی که این روش داره اینه که اگر تعداد صفحات سایتمون زیاد باشه باید برای همه صفحات یک دستور بنویسیم. راه حل رفع این مشکل استفاده از روش دوم. استفاده از htaccess به همراه php در این روش ابتدا همه درخواست ها رو به فایل index.php ( یا هر فایلی که خواستید) میفرستید. سپس با دستورات php آدرس رو تجزیه میکنید و ازش استفاده میکنید. برای اینکار در فایل htaccess خطوط زیر رو بنویسید ( محتویات قبلی رو پاک کنید) : کد php: Options +FollowSymLinks تنها تفاوت این فایل با قسمت قبل دستور خط آخره. به جای نوشتن دستورات مختلف برای صفحات مختلف سایت در فایل htaccess ، در این قسمت تمام URL ها رو به فایل index.php ارسال میکنیم.که این کار به ما کمک میکنه بقیه کارها رو با دستورات پی اچ پی انجام بدیم. همینطور که در بالا میبینید همه درخواستهارو در متغیر $_GET['param'] ریختیم. حالا در فایل index.php میتونیم به راحتی از متغیر $_GET استفاده کنیم. کد php: if(isset($_GET['param']) AND !empty($_GET['param'])) در ابتدا چک کردیم برای خالی نبودن و ست شدن متغیر $_GET['[param'] اگر شرط برقرار نبود فایل main.php یا همون صفحه اصلی سایت نمایش داده میشه. در غیر اینصورت چک کردیم که آیا فایل مورد نظر وجود داره یا خیر. اگر وجود داشت include میشه وگرنه به کاربر صفحه ۴۰۴ نمایش داده میشه. |
|||
|
کاربرانِ درحال بازدید از این موضوع: 1 مهمان