PDA

View Full Version : تبدیل ادرس های یک سایت از php به html



sananet
یک شنبه 19 خرداد 1398, 00:31 صبح
با سلام می دانیم که برای تبدیل یک ادرس در .httacess باید کد زیر را بزنیم


RewriteRule ^index2.html$ ./index2.php [L,NC]

ولی اینطوری باید برای تک تک ادرس های سایت این کد رو بنویسیم
می خواستم با کدی تمام صفحات رو که با php هستند به html تبدیل کنم

ali_sed
یک شنبه 19 خرداد 1398, 00:43 صبح
می خواستم با کدی تمام صفحات رو که با php هستند به html تبدیل کنم

سلام



RewriteRule ^(.+)\.html$ $1.php [L,NC]

MohammadGh2011
سه شنبه 21 خرداد 1398, 01:02 صبح
سلام



RewriteRule ^(.+)\.html$ $1.php [L,NC]


درود بر شما
چطور میشه ادرس صفحات رو تغییر داد؟
مثلا پیجی داریم به نام https://domain.ir/Contact.php
چطور میشه اونو به :https:// (https://parsele.ir/تماس)domain (https://domain.ir/Contact.php).ir/تماس (https://parsele.ir/تماس) با ما
تغییر داد؟

و همچنین ما بقی پیج هارو


سپاس فراوان از شما

ali_sed
سه شنبه 21 خرداد 1398, 10:04 صبح
درود بر شما
چطور میشه ادرس صفحات رو تغییر داد؟
مثلا پیجی داریم به نام https://domain.ir/Contact.php
چطور میشه اونو به :https:// (https://parsele.ir/تماس)domain (https://domain.ir/Contact.php).ir/تماس (https://parsele.ir/تماس) با ما
تغییر داد؟

و همچنین ما بقی پیج هارو


سپاس فراوان از شما


وقت بخیر

بستگی به ساختار برنامه شما داره. اما بصورت کلی بهتره مدیریت مسیرها (routes) در داخل برنامه انجام شود. بنابراین هر url ای که مجازی باشد (متناسب با آدرس، فایل یا پوشه ای روی هاست وجود نداشته باشد) به یک فایل مثلا index.php هدایت می کنیم. در ابتدای این فایل url درخواستی از متغیر $_SERVER['REQUEST_URI'] خوانده شده و با مسیرهایی که از پیش تعریف کرده اید مطابقت داده می شود. شما میتوانید مسیرهای خود را در یک آرایه ذخیره کنید و یا آنها را در دیتابیس درج کنید.


#.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>


index.php


$URI = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$URI = explode('/', $URI);
$URI = array_values(array_filter($URI));//remove empty values

$routes = array(
'تماس-با-ما' => 'contact.php',
'درباره-ما' => 'about.php',
);

$file = 'main.php';
if(count($URI)>0 && array_key_exists($URI[0], $routes)){
$file = $routes[$URI[0]];
}
include($file);


هدف از این کدها تنها آشنایی شما با مسیرها است و بسته به ساختار برنامه شما نیاز به تغییر دارد.

در ضمن اگر عنوان صفحه شما «تماس با ما» باشد برای خوانایی بیشتر باید فاصله را به خط تیره تبدیل کنید همچنین برخی کاراکترها در url مجاز نمی باشند. بنابراین برای ساخت slug نیاز به یک تابع دارید که کافیست php slug generator را در گوگل جستجو کنید.