PDA

View Full Version : سوال: مشکل در ساخت صفحات داینامیک



Taimaz_222
یک شنبه 06 اردیبهشت 1394, 17:13 عصر
با سلام. من به یک مشکل جدی برخورد کردم، ممنون می شم اگر راهنمایی کنید.
سایت من یک سایته تبلیغاتی هست که برای هر آگهی ای که ثبت می شه یک رکود در دیتابیس درست می کنه و همچنین یک صفحه هم به صورت داینامیک برای هر آگهی درست می کنه. طبق تحقیقاته من، در ساخت صفحات به صورت داینامیک باید از متد GET استفاده بشه، مثله همین آدرسه صفحات سایته barnamenevis.org.
مثلا :
www.mysite.com/page.php?id=13


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

www.mysite.com/page1/

یا

www.mysite.com/page1.php

در خیلی از سایت ها دیدم که اینطوری هستن، اما من راه حلش رو نمی دونم. مثله سایت های :
http://www.boorsagahi.com
http://www.divar.ir

Davidd
یک شنبه 06 اردیبهشت 1394, 17:25 عصر
سلام. راه حلش URL Routing است. جستجو کنید مطلب زیاده.

Taimaz_222
یک شنبه 06 اردیبهشت 1394, 17:36 عصر
ممنون. اگر می شه خودتون اینجا توضیح بدید که باید چکار کنم، چون من با جستجو چیزی دستگیرم نشد.

belief.savior
یک شنبه 06 اردیبهشت 1394, 17:38 عصر
همونطور که دوستمون davvid گفت می بایست از این متد استفاده نمایید :

example.com/class/function/id/


برای مثال در صورت که از MVC استفاده می کنی این نمونش میشه :

example.com/product/1/
example.com/product/2/
example.com/product/3/
example.com/product/4/

مثلا اگر کلاسی ایجاد کردیم به نام article و این چنین نوشتیم

protected function _getUrl()
{
$url = isset($_GET['url']) ? rtrim($_GET['url'], '/') : null;
$url = sanitize($url);
$this->_url = explode('/', $url);
}



و این چنین استفاده کردیم

$content->_url


می تونید تو نشانی آدرس URL رو برداری

در مورد اینکه می گی سایت www.mysite.com/page.php?id=13 رو داره id همون شماره خبر هست که از طریق url میگیره پاس میده به class و برای حذف علامت .php یه فایل .htaccess درست کن و اینو بنداز توش



RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Taimaz_222
دوشنبه 07 اردیبهشت 1394, 16:29 عصر
خودم جوابش رو پیدا کردم. توی این لینک به طوری کلی توضیح داده :
https://www.youtube.com/watch?v=1J7KVNA5tn8