راه مناسب اینه که تمام درخواستهایی رو که صراحتاً به یک فایل (مثل تصویر یا CSS یا JS یا PHP و...) و یا یک پوشهی مشخص اشاره نمیکنن، ارجاع بدین به فایل index.php
اینکار ازطریق ایجاد یک فایل بدون نام با پسوند htaccess (بطور خلاصه یک فایل با اسم .htaccess) در محل ریشهی سایتتون (کنار index.php) و درج محتوای زیر داخلش انجام میشه:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?r=$1 [L,NC,QSA]
حالا توی سایتتون اگه فرضاً مسیر mysite.com/product/eynak-reyban رو اجرا کنید، عملاً فایل index.php داره اجرا میشه و هر چیزی که جلوی آدرس ریشهی سایت نوشته شده تحتعنوان متغیر
$_GET['r'] برای این اسکریپت فرستاده میشه. مثلاً در این حالت اگه توی index.php دستور زیر رو اجرا کنید:
echo $_GET['r']; // output: product/eynak-reyban
خروجی طبق کامنتی که توی کد گذاشتم خواهد بود. حالا میتونین برای مثال با تابع explode خروجی رو تفکیک کنید:
$route = explode('/', trim($_GET['r'], '/')); // $route = ['product', 'eynak-reyban']
اینطوری عملاً یک اسکریپت نقطهی ورودی تمام درخواستهاست و براساس پارامتری که توی URL قرار میگیره، میتونه تصمیم بگیره که چه بخشهای دیگری از سایت رو فراخوانی کنه. این تکنیک به ساخت URLهای SEO Friendly معروفه. برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید
برچسب : نویسنده : خنجی prog بازدید : 236 تاريخ : شنبه 6 آبان 1396 ساعت: 19:42