Как сделать ЧПУ для сайта на 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, из комментариев в коде ясно, как это работает.

 

 

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

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

  1. aretenb.se:

    Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates. I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this. Please let me know if you run into anything. I truly enjoy reading your blog and I look forward to your new updates. parte.aretenb.se/advice-girlfriends/social-ngest-symtom.php social angest symtom

  2. aretenb.se:

    Good article. I definitely appreciate this website. Keep it up! haude.aretenb.se/for-men/ansiktsmask-drar-bort.php ansiktsmask drar bort

  3. MiraslavLax:

    Работа в интернете

  4. IndividMal:

    Good models who agree on everything be found on vseindividualki.ru
    Visit us and you will be very satisfied.

  5. BrentLendy:

    профитлинкс – seo продвижение сайта ссылочными пирамидами и органическими ссылками.
    Также в наших предложениях ускорение индексации ваших сайтов, продвижение естественными вечными ссылками.
    Для тех, у кого нет опыта, чтобы раскручивать свой сайт – мы предлагаем услугу «удаленный сео специалист» – это экономия вашего времени, нервов и бюджета. Это предложение подходит как персональным сайтам, так и комнаниям. Многие представители бизнеса смогут легко сократить бюджет на раскрутку с помощью этого предложения и отказаться от содержания сео специалиста в штате.
    Прочитать подробнее или заказать раскрутку вы можете на сайте Profitlinks.

  6. MariyaMup:

    Срочно требуются сотрудники без опыта!

  7. fktrcfylhbySuilt:

    Hello. And Bye.

  8. Sandraniz:

    The best adult Dating site loveawake.ru

  9. Williamitabe:

    Hello world


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


пять + = 12