Simple Clean URL with PHP

bahy_my

Active Member
clean url در php آشنا هستيد . اما براي همه دوستان يك توصيح سريع راجع به اون مي دم :
سيستمي كه يك url شبيه به اين رو :
http://www.sepultura.com/contact.php?name=max&lname=cavalera
به اين صورت در مياره :
http://www.sepultura.com/contact/max/cavalera

حالا يه چيزي شبيه به همون با تفاوتهاي جزيي .
براي اين كار هم كه حتما همون طور كه چندي پيش linmiss تو وبلاگش توضيح داده بود مي دونيد بايد دست به دامان apache و htaccess بشويم .
چند وقت پيش نسخه دموي كتاب simplephp نوشته آقاي robert plank رو دانلود كرده بودم اما هيچ وقت نخونده بودم تا اينكه اتفاقي به صفحه 6 كتاب رسيدم كه روش ساختن يك حالت ساده clean url رو بدون استفاده از هيچ چيز توضيح داده بود و حتي نوشته بود كه هر جاي دنيا url شبيه به go.php/etc ديديد بدونيد كه اون اسكريپت منه .
گفتم شايد بعضي از دوستان هم مثل من چگونگي اين اسكريپت جالب باشه .
در ادامه اسكريپت كوتاه و ساده روبرت عزيز رو ميارم :
PHP:
 <?php 
$myvars = explode("/",$_SERVER['REQUEST_URI']); 
for ($i=0;$i<count($myvars);$i++){ 
    $holder = explode("=",$myvars[$i]); 
    ${$holder[0]} = $holder[1]; 
} 
echo "name= $f and lname = $l"; 
?>
( الگوریتمش سادس... هر کی متوجه نشد بگه تا بگم..)
در اين صورت به جاي :
http://www.sepultura.com/contact.php?n=max&l=cavalera
مي تونيم از اين استفاده كنيم :
http://www.sepultura.com/contact.php/n=max/lname=cavalera
البته هنوز اكستنشن فايل مشخص هست و اسم متغير .
توضيحات :
دليل استفاده از clean url بهينه سازي سايت براي موتور هاي جستجو و حتي امنيت هست .

منبع : PhpMyAdmin - لینک مطلب
 

1p30

Member
منون ولی من میخوام با php مشکل حل بشه راهی نیست؟
 

bahy_my

Active Member
سلام
نه !
چون این به کد های php مربوط نمیشه و باید شما با URL بازی کنی.
البته این نظر من بود... شاید اشتباه باشه..
 

bahy_my

Active Member
معذرت می خوام که دیر شد.
نفهمیدم آپ کردین.
.htaccess رو می گین ؟
با عبارات منظم بازی کرده.
 

it5

Member
میشه یک نفر در مورد این مبحث یک توضیح کامل بده

کامل کامل از اول
 

bahy_my

Active Member
$_SERVER['REQUEST_URI'] متغیریه که رشته ی توی آدرس بار رو می ده.
ما میایم به ازای هر / یه دستور می نویسیم : که متغیر x ( مقدار قبل از = ) برابر باشه با مقدار بعد از مساوی...
من خودم هم خوب کار نکردم باهاش.
ینی الگوریتم خودمو استافده کردم ( جایگزینی) بنابر این بهتره خود سعید یه توضیحی بده..
 

it5

Member
فرق کد php با htaccess چیه؟
به آدرسی که گفتی سر زدم ولی بازم کامل چیزی نفهمیدم!!
 

jhoseini

Member
دو حالت داره
1) (همونطور که bahy_my گفتند REQUEST_URI رو از حالت دایرکتوری مجازی که توی لحظه ی ایجاد لینک تعیین شده به حالت پارامتر های get در بیاری و بعد ازش استفاده کنی
2) (همونطور که اینجا گفته شده) یه فایل .htaccess روی root آپلود کنی. با محتوای :
کد:
RewriteEngine On 
Options +Followsymlinks 
RewriteRule ^([a-zA-Z0-9_]+)(\/(index([0-9]+)\.htm)*)*$ ?u=$1&amp;page=$4
که هروقت /saeed/index10.htm لینک شد، درخواست بصورت index.php?u=saeed&amp;page=10 به پی اچ پی سرور ارسال بشه

(فقط خاستم یه جمع بندی کرده باشم !)
 

جدیدترین ارسال ها

بالا