Как сделать чпу на 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/.

Ответы (0)