Как сделать чпу на php
Изучите современные методы создания чпу-ссылок с помощью php: подробно описаны примеры, алгоритмы и практические рекомендации.
ЧПУ (англ. Search Engine Friendly URLs, рус. дружественные для поисковых систем интернет-адреса) – это правильно построенные адреса для страниц вашего сайта, которые понятны и привлекательны для поисковых систем. Например, стандартный адрес страницы сайта, который может привести к просмотру данной страницы, может производить впечатление на посетителя, но не будет привлекать поисковые системы. Например: http://example.com/index.php?page=articles&id=45
. В этом случае адрес страницы представляет собой строку параметров, которая не так читаема и понятна. В то же время, дружественный для поисковых систем адрес страницы может выглядеть следующим образом: http://example.com/articles/45/
. Такой адрес понятен и привлекателен для поисковых систем, сразу понятно, что на странице представлены статьи, а после слеша последние номер статьи.
Реализация ЧПУ на PHP
Для реализации ЧПУ на PHP нам понадобится создать правило для файла .htaccess и написать некоторый код на языке PHP. Пример правила для файла .htaccess:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ index.php?page=$1&id=$2
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/$ index.php?page=$1&id=$2
Это правило для примера, который мы использовали выше. В примере мы используем две переменные: page
и id
. Правило позволяет перенаправлять адреса следующего вида:
http://example.com/articles/45/
на адрес:
http://example.com/index.php?page=articles&id=45
Теперь для реализации ЧПУ нам нужно написать код на PHP. Начнем с функции, которая получает переменные из $_GET
и возвращает адрес для перенаправления. Функция принимает два параметра: $page
и $id
:
function get_url($page, $id = null) {
if ($id) {
return '/'.$page.'/'.$id.'/';
} else {
return '/'.$page.'/';
}
}
Чтобы перенаправить посетителя на страницу с дружественным адресом, используйте следующий код:
$page = $_GET['page'];
$id = $_GET['id'];
$url = get_url($page, $id);
header("location: ".$url);
Таким образом, мы смогли реализовать ЧПУ на PHP. Пример адреса после перенаправления будет выглядеть так: http://example.com/articles/45/
.