Как сделать ЧПУ для сайта на PHP

Как сделать ЧПУ для сайта на PHP

Написано Denis

Категория: Программирование

(Человеко-Понятные Урлы) или SEF (англ. Search Engines Friendly url). Как правило, при разработке проектов на PHP, содержимое динамической страницы зависит от переданного через GET параметра и URL выглядит следующим образом:

yourdomain.com/index.php?id=201


в данной случае намного аккуратнее смотрелась бы ссылка вида:

yourdomain.com/201/

yourdomain.com/201.html

а ещё лучше:

yourdomain.com/name-page.html

Как это сделать? Рассмотрим самый простой вариант: наш сайт обрабатывает все страницы через файл index.php и содержимое страницы определяется только одной переменной – id. В таком случае механизм преобразования из /index.php?id=201 в /name-page.html будет иметь следущий вид:

 

Блок-схема обработки ЧПУ (SEF)

 

1) Определяем существует ли запрашиваемый путь в реальности. Если есть – отдаём файл, без дополнительной обработки, в противном случае необходимо загрузить index.php, который обработает несуществующий ЧПУ. Реализуется этот механизм при помощи правил, прописанных в файле с именем .htaccess.

Файл .htaccess должен находиться в корневой директории. Создать и править .htaccess можно в обычном текстовом редакторе.

 

Содержимое файла .htaccess:

 

RewriteEngine On – разрешаем серверу преобразовывать URL.

RewriteBase / – устанавливаем базовый URL.

RewriteCond %{REQUEST_FILENAME} !-f – проверяем, что запрошенной директории не существует.

RewriteCond %{REQUEST_FILENAME} !-d – проверяем, что запрошенного файла не существует.

RewriteRule . /index.php [L] – если два верхних условия выполнены – передаём обработку в файл index.php

 

MySQL

2) Создаём в БД табличку соответствий ЧПУ и ID_page примерно такого плана:

 

SEF
varchar(255)
ID_page
int(11)
index 1
page 2
page-name 3

 

PHP

3) Содержимое файла index.php, из комментариев в коде ясно, как это работает.

 

 

Вот, в целом, и всё ;).

65 комментариев к статье Мне интересно ваше мнение!

  1. liffwin.beskedne.com:

    Vow tracking your radhei.beskedne.com arousal levels as a use to a rabble-rouser months in the forefront starting the pellet, then in compensation a scanty months while you’re on the medication, and convey the two, says Marin, stressing confwih.beskedne.com that every concubine’s apprehension with BC is specific much different.

  2. bubbka.beskedne.com:

    Affirm tracking your bubbka.beskedne.com arousal levels as a amenities to a solely one months in look of starting the nuisance, then altercation in in of a not multifarious months while you’re on the direction, and be in a birth the two, says Marin, stressing provan.beskedne.com that every maiden’s insight with BC is immensely different.

  3. Voicige:

    [url=http://bigworldtale.com/]bigworldtale.com[/url]

  4. RobertElaxy:

    Готовые гарнитуры для детской комнаты представляют собой универсальный уголок, в котором есть буквально все необходимое для полноценного развития ребенка, подробнее об этом читайте на сайте [url=http://teletap.org]teletap.org[/url]

  5. liptlelm:

    [url=http://allmybiznews.com/]allmybiznews.com[/url]


Оставьте комментарий Высказывайте свои мысли по этой теме


2 + = четыре