در این مقاله ایجاد صفحات وب منطبق بر سئو را در PHP به شما آموزش خواهیم داد.
تنظیمات فایل htaccess را بصورت زیر انجام می دهیم.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
کد بالا برای اولین بار تایید می کند که ماژول mod_rewrite فعال باشد اگر در صورتی که در سرور میزبان فعال نیست، می توانید از شرکت میزبانی خود بخواهید که آن را فعال کند. برای WAMP و XAMPP، فعال و غیر فعال کردن آسان است. اگر در صورتی که در دایرکتوری ریشه کار نمی کنید، مجبورید RewriteBase و RewriteRule را نیز تغییر دهید. مثال:
RewriteBase /sub/dir/
و
RewriteRule . /sub/dir/index.php [L]
در فایل index.php خود کدهای زیر را وارد می کنیم:
<?php
$url = strtolower($_SERVER["REQUEST_URI"]);
while(preg_match("/\/\//",$url)) { //removes double slashes
$url = str_replace("//","/",$url);
}
$url = explode("?",$url); //removes query string
$url = explode("/",$url[0]); //removes query string
array_shift($url); //removes first array element, which is blank
print_r($url);
برای مثال آدرس وب http://site/sub/dir/contact به شکل زیر خروجی خود رانشان می دهد:
Array
(
[0] => sub
[1] => dir
[2] => contact
)
در مرحله بعد کدهای زیر به فایل index.php اضافه می کنیم:
if($url[2] == "") {
header("HTTP/1.1 200 OK");
echo "home";
} elseif($url[2] == "contact") {
header("HTTP/1.1 200 OK");
echo "contact";
} else {
header("HTTP/1.1 404 Not Found");
echo "404";
}
همانطور که می بینید ما از if,elseif استفاده کردیم. اگر url2 خالی باشد شما را به صفحه اصلی هدایت می کند و هنگامی که به یک صفحه اشاره کند صفحه مورد نظر را نشان می دهد و اگر کاربر به صفحه ای مراجعه کرد که در وب سایت ما یافت نشد صفحه 404 ما نمایش داده خواهد شد. کد نهایی ما در index.php به شکل زیر خواهد بود.
<?php
$url = strtolower($_SERVER["REQUEST_URI"]);
while(preg_match("/\/\//",$url)) {
$url = str_replace("//","/",$url);
}
$url = explode("?",$url);
$url = explode("/",$url[0]);
array_shift($url);
//print_r($url);
if($url[2] == "") {
header("HTTP/1.1 200 OK");
echo "home";
} elseif($url[2] == "contact") {
header("HTTP/1.1 200 OK");
echo "contact";
} else {
header("HTTP/1.1 404 Not Found");
echo "404";
}