Самый простой и логичный ЧПУ для PHP. Функция ЧПУ на php

На файл htaccess мы сильно отвлекаться не будем, его работа не так уж и сложна, тем более если Вы знакомы с регулярными выражениями в php . Вот, что касается самого модуля ЧПУ, то он представлен в виде двух файлов (ну можно и в один, но у меня почему то получилось два =) ) и "сети условий" по всему движку. Не пугайтесь, под термином "сети условий", я подразумеваю тот геморрой с автоматической смены ссылок по всему движку ! Сегодня мы займемся лишь фундаментом, и добьемся того что бы пост, на странице нашего блога, был доступен по адресу с человеко-понятной ссылкой

Цели я указал в анонсе, так что сейчас пару слов для новоприбывших, и приступим =)

Для тех кто на блоге в первые

Если Вы на блоге в первый раз, то эта маленькая заметка именно для Вас! Пускай тема ЧПУ обширная и применима к любому проекту, Вам, именно в материале на этой странице, будет очень сложно выявить что-то полезное для себя, по причине того, что этот пост, как и большинство на моем блоге, является частью цикла статей "Создать блог с нуля ". Цикл ориентирован на аудиторию которая хочет на практике научится программировать на php. Если Вы из таких, то добро пожаловать! Переходите по ссылке, что я дал Вам выше и приступайте к изучению изложенного мной материала

Если Вы собираетесь задержаться на моем блоге, то подпишитесь на RSS ленту блога через ридер, или же по почте

Новая колонка в таблице базы данных

Так как у нас пока нет модуля который автоматически, из заголовков, делал бы нам имена ссылок, то придется не только создать колонку но и заполнить ее каким-нить именем. Только учтите, что имя должно состоять из маленьких букв английского алфавита , плюс к этому не должно быть пробелов, вместо них ставим тире (-) . Это условие обязательно, ибо скрипт проверки будет отсеивать не правильные адреса, перекидывая пользователя на главную страницу блога.

Заходим в структуры таблицы blog, и после id создаем новую колонку

Заполняем поля приблизительно вот так (имя поля nameurl )

Теперь, необходимо заполнить новую колонку. У меня лишь одна запись в базе данных, поэтому для меня заполнение новой колонки не является проблемой =)

В конце имени необходим поставить ".html". Если у Вас в планах не использовать такое окончание у Ваших страниц, то можете не писать, только в этом случае Вам придется немного переделать файл htaccess , а именно убрать расширение там.

Я для тестовой странице использовал вот такое имя: dobro-pozhalovat.html

Ну чтож, с этой задачей мы справились, теперь приступим к самому файл htaccess

Создаем файл htaccess

Создавать лучше всего с помощью программы Notepad++ , ибо в некоторых случаях виндоус ругается, что у файла нет имени, ведь имени и в правду нет =) только расширение.htaccess

На всякий случай я скину Вам файл, вот он . Этот файл необходимо поместить в корень нашего блога

Содержимое файла следующее:

RewriteEngine on
RewriteRule ^post/([-a-z0-9]+.html)$ index.php?post=$1 [L]
RewriteRule ^category/([-a-z0-9]+.html)$ index.php?category=$1 [L]
RewriteRule ^contacts.html$ index.php?contact=1 [L]

Первая строчка включает возможность перенаправления с динамических ссылок на ЧПУ. Вторая отвечает за ссылки на посты. То есть если ссылка будет вот такого вида

http://rsblog.ru/post/dobro-pozhalovat.html

То сервер поймет, что обращение идет к странице с постами, и создаст для себя динамическую ссылку для дальнейшей обработки.

http://rsblog.ru/category/testovaya-kategoriya.html

http://rsblog.ru/contacts.html

Обратите внимание что регулярное выражение находится в скобках, если Вы знакомы с регулярками, то прекрасно знаете, что скобки это сохранение . Вопрос, куда переносятся сохраненные данные? Ответ: В переменную 1. Да, именно 1 (единица).

Если Вам нужны ЧПУ без.html то редактируйте регулярное выражение в файле htaccess, на такой вид ссылок, который Вам нужен!

Особо останавливаться тут не будем, я многое тут не знаю, поэтому долго разглагольствовать на эту тему не имею право, единственное что бы я еще добавил, это пару слов о флаге [L]. Я может и ошибаюсь, но как я понял этот флаг останавливает проверки, что идут ниже, это что-то типа break (прерывание работы всего цикла ) у циклов.

Под итожу то что написано в файле htaccess: Условия, для каждого вида станиц которые есть у нашего движка, а именно

  • для постов
  • для категорий
  • для страницы контактов

Если Вы знакомы с регулярками , то разобраться в файле Вам не составит труда.

php функция chpu() - Алгоритм поиска id записи в таблице базы данных

Начнем с создания алгоритма поиска. Для этого нам понадобится знать в какой таблице искать и что искать . У Вас может возникнуть вопрос, что значит в какой таблице? Ведь таблица у нас одна - blog . Это не совсем так, сегодня мы рассматриваем только посты, но так же нам известно, что у категорий тоже есть свои ссылки, а таблица которая будет содержать имена категорий называется menu , именно поэтому алгоритм должен знать в какой таблице ему искать. Пускай функция chpu() на данном этапе будет работать лишь на половину, зато в следующих постах нам не придется редактировать ее (функцию).

Создаем файл chpu.php помещаем его в пользовательские модули нашего движка, и пишем в этом файле следующую функцию:

function chpu($url,$dirDB)//функция ЧПУ
{
//$url - имя с помощью которого мы определим id
//$dirDB - режим, с помощью которого мы определим в какой таблице базы данных нам искать
//определяем запрос в зависимости от того какую страницу открывает пользователь (текст поста или категорию)
if($dirDB == "post")$sql = "SELECT id FROM blog WHERE nameurl = "$url"";//текст поста
if($dirDB == "category")$sql = "SELECT id FROM menu WHERE nameurl = "$url"";//категория

$result_index = mysql_query($sql);//Выводим из базы статью
$myrow_index = mysql_fetch_array($result_index);

if($myrow_index != "") return $myrow_index;//если найдена строчка в БД выводим id
else return "";//если нет, выводим пустоту
}
?>

Функция очень простая, так что не будет на ней останавливаться, тем более я уже не раз разъяснял логику поиска id в таблице.

Скрипт позволяющий определить какая страница открыта

Цель этого скрипта определить в каком режиме запустить функцию chpu(). Определить это можно по GET запросу который создает нам сервер при обращение к станице по ЧПУ. Если Вы внимательно смотрели содержимое файла htaccess, и приблизительно поняли его работу, то Вы должны догадаться, что сервер для себя определяет ссылку вот такого вида

http://rsblog.ru/index.php?post=dobro-pozhalovat.html

То есть, если пользователь обратился к станице с помощью ЧПУ то сервер создаст GET запрос post, создание такого запроса сигнализирует нам о том что пользователь обратился на страницу поста, стало быть функцию chpu() необходимо запускать в режиме поиска id в таблице blog

Создаем файл getchpu.php, сохраняем его в папке пользовательских модулей и пишем в нем следующий скрипт

if($chpu == 1)//если блог работает в режиме вкл ЧПУ
{
include("moduls/chpu.php");
//GET ПЕРЕМЕННАЯ post
if(isset($_GET["post"]))
{
if(!preg_match("/^[-a-z0-9]+\.html$/",$_GET["post"]))//если имя не корректное,то переносим
{
exit;
}
$blog = chpu($_GET["post"],"post");//по имени страницы достаем из бд id
if($blog == "")//если результат функции пустота, то переносим пользователя
{
header("location: ".$server_root);//на главную страницу
exit;
}
}
//GET ПЕРЕМЕННАЯ post
//GET ПЕРЕМЕННАЯ category
if(isset($_GET["category"]))
{
if(!preg_match("/^[-a-z0-9]+\.html$/",$_GET["category"]))//если имя не корректное,то переносим
{
header("location: ".$server_root);//на главную страницу
exit;
}
$cat = chpu($_GET["category"],"category");//по имени страницы достаем из бд id
if($cat == "")//если результат функции пустота, то переносим пользователя
{
header("location: ".$server_root);//на главную страницу
exit;
}
}
//GET ПЕРЕМЕННАЯ category
}
?>

Логика скрипта следующая:

  • Скрипт будет работать только в случае если блог работает в режиме вкл ЧПУ, то есть переменная chpu равна единице (это сделано для того чтобы режимы можно было поменять воздействуя лишь на одну переменную )
  • Далее подключается функция поиска id в базе данных
  • Дальше идут два варианта развития, и оба они работают по той же логике, то есть если существует GET запрос post или category то запускается проверка на корректность имени. Эта проверка поможет избежать простейших способов взлома нашего движка . Если проверка прошла успешно (если же нет, то нас перекинет на главную страницу ) запускается функция chpu(), тем самым в переменную blog или cat (в зависимости от того какая часть скрипта будет работать =) ) попадет id записи в базе данных. Если переменная пустая, то нас перекинет на главную страницу.

Тут есть один момент. Если Вы писали движок с самого начала курса, то у Вас скорее всего нет переменной server_root. Если Вы ставили копию движка, что я давал в посте "Установка нашей CMS ", то эта переменная у Вас есть.

Если у Вас нет этой переменной, то откройте пользовательский файл index.php, и сразу после подключение к базе данных пропишите эту переменную


$nameDB = "rsblog";//Название БД
$nameSERVER = "localhost";//Сервер
$nameUSER = "root";//Имя пользователя БД
$passUSER = "";//Пароль пользователя БД
mysql_select_db($nameDB, mysql_connect($nameSERVER,$nameUSER,$passUSER));

$server_root = "http://адрес_вашего_блога.ru/";
//ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)

Значение переменной является адрес Вашего блога. Эта переменная необходима была в админке для авторизации , тут же она необходима для реализации ЧПУ , в частности для тега что мы применим чуть ниже.

вставляем вот такой тег

Этот тег позволяет определить корень сайта, тем самым мы избавимся от глюка который мешает правильно определить пути к стилям. Если не поместить этот тег в код шаблона, то все страницы находящиеся по ЧПУ перестанут грузить стили, ява скрипты, и если я не ошибаюсь то и картинки

Заключение

Теперь при заходе на страницу http://rsblog.ru/post/dobro-pozhalovat.html я попадаю на страничку статьи

На по следок хочу сказать, что мой способ реализации человеко-понятных урл не самый гибкий и функциональный, но тем не менее он работает. В следующем посте мы научим движок работать с ссылками категорий и формы обратной связи

Если у Вас есть какие вопросы, то пользуйтесь формой ниже

Если Вы еще не подписаны на мой блог, исправляйте дело и подпишитесь на RSS ленту блога через ридер, или же по почте , так Вы точно не пропустите новые заметки на блоге

Всего Вам наилучшего! У меня Все!

P.S.: В интернете нашел подборку довольно не плохих статей на тему веб-дизайн , если кто-то видит себя в будущем как дизайнера, то обязательно почитайте эти статьи, очень полезная информация.

Мир интернета стремительно развивается и покоряет все новые вершины. Миллионы сайтов, сервисов и служб рады принять очередного пользователя на своих страницах. Создано огромное количество адресов, которые генерируются автоматически. И не всегда их удобно читать и запоминать. К тому же бессмысленный набор символов плохо ранжируется поисковыми системами. Вследствие этого возникла необходимость ввести реализацию кода таким образом, чтобы он мог предстать в более удобном и приятном глазу пользователя виде.

Поэтому в мире веб-разработок появился термин ЧПУ-ссылки. О том, что это такое и как его реализовать, пойдёт речь в статье.

Что такое ЧПУ-ссылки

Вообще, ЧПУ - слово жаргонное, означающее человекопонятный урл. УРЛ - заимствование от английского URL, единообразного локатора ресурса. Человекопонятный, в свою очередь, означает набор символов в адресной строке, который удобно и легко воспринимается. Например, генерируемый адрес страницы может выглядеть так: http://example.com/index.php?page=name. Не очень понятно смотрится и не показывает структуру сайта. Присутствуют знаки, не несущие смысловой нагрузки и неясно, что значит страница и имя.

Следующий адрес может выглядеть так: http://example.com/products/new/boat. Здесь понятно, что речь о продукции, причём новой, а конкретно - о лодке. Это и есть человекопонятный урл. Он гораздо лучше индексируется поисковыми системами и показывается в выдаче выше остальных. А человек, посетивший сайт, сможет понять, что зашёл именно в нужный раздел.

Однако у ЧПУ-ссылок есть некоторые ограничения. Например, в адресе нельзя использовать русские символы. Они при этом заменяются на числовое значение и знак процента. Поэтому отечественные разработчики используют транслитерацию русских слов в латиницу. Например, так - oborudovanie или produkcia. Также автоматически сформированная ЧПУ-ссылка может увеличить общую длину строки.

Для реализации транслитерации и преобразования к человекопонятным урлам используются специальные средства. Доступны они, как правило, в системах управления контента - CMS. Создание ЧПУ-ссылок происходит в них автоматически, на основе названия товара, статьи или блога, а также раздела, в котором он размещён. В итоге, при создании новой записи, добавления товара формируется человекопонятный урл, который хорошо воспринимается и людьми, и машинами.

Как сделать ссылки ЧПУ в популярных CMS

CMS — система управления, контентом, которая в удобном и простом интерфейсе позволяет в короткие сроки создать полноценный сайт. Функционал расширяется за счёт наличия большого количества готовых шаблонов, модулей и плагинов. Это позволяет человеку далёкому от языков программирования PHP, JavaScript, HTML и смежных им, быстро создать свой собственный сайт или блог.

Практически все системы управления контентом обладают отличным набором инструментов в виде плагинов для создания ЧПУ. Стоит подробнее рассмотреть наиболее распространённые из них.

  • WordPress — самая популярная, по статистике, система управления контентом. Она установлена на большинстве известных блогов и сайтов. Славится простотой освоения и установки.
  • Joomla — популярна меньше, но все же активно используется среди разработчиков. Обладает хорошим функционалом, выбором компонентов, плагинов и модулей.
  • OpenCart — отдельный проект для создания интернет-магазинов. Внутренне напоминает любую CMS, но «заточен» под решение узкого круга задач.

ЧПУ-ссылки в WordPress — простота реализации

WordPress является, наверное, самой простой системой управления контентом. Она способна значительно упростить создание сайта или блога с нуля за короткое время.

Настройка ЧПУ в WordPress проста и сводится в основном к скачиванию и установке плагина Cyr-To-Lat. Он служит для преобразования кириллических строк в латиницу.

Для начала стоит его найти и скачать. Делать это лучше с официального сайта WordPress. Так можно избежать вероятности попадания в плагин вредоносного или рекламного кода.

  • После скачивания архива его нужно распаковать.
  • Затем надо переместить эту папку в раздел wp-content ->plugins. Делается это, как правило, с помощью любого доступного FTP менеджера.
  • Теперь нужно зайти в административную панель WordPress, введя логин и пароль.
  • В разделе «Плагины» надо найти Cyr-To-Lat и активировать его. Плагин теперь установлен в системе и включен.
  • Для этого надо перейти в «Параметры», и там зайти в «Постоянные ссылки».
  • В общих настройках есть несколько шаблонов, по которым можно построить внешний вид ссылки. Рекомендуется использовать тип «Произвольно», позволяющий настроить все, как необходимо. Самая простая конструкция для такого шаблона - /%category%/%postname%/. Она означает, что в адресной строке будет выводиться категория, а затем название поста.
  • А потом уже Cyr-To-Lat преобразует все это в латиницу. В результате, получится красивая и понятная ЧПУ-ссылка в WordPress.

Помимо Cyr-To-Lat, можно использовать и аналоги, которые присутствуют на официальном сайте. Например, такие — WP Translitera, ACF: Rus-To-Lat, Rus-To-Lat Advanced. Установка данных плагинах похожа, поэтому останавливаться на них отдельно не имеет смысла.

ЧПУ в Joomla, несколько вариантов создания

Joomla немного более сложная система управления контентом. Так же, как и WordPress обладает свойством создавать сайты и блоги в короткие сроки. Она имеет обширный функционал и гибкость. Далее, нужно описать как сделать ссылки ЧПУ в данной CMS.

Joomla изначально обладает встроенным функционалом для создания человекопонятных урлов. ЧПУ-ссылки в Joomla 3 можно включить на странице общих настроек в разделе «Настройки SEO». Пункт «Включить SEF (ЧПУ)» должен быть установлен в положение «Да». Таким образом ссылки будут преобразованы в более понятный вид.

Здесь же можно дополнительно установить перенаправление урлов, путем создания ЧПУ-ссылки в htaccess. Этот файл выполняет роль конфигурационного хранилища веб-сервера Apache. В нем можно с помощью регулярных выражений и директивы RewriteRule изменить преобразование ссылки в нужный урл. Главное отличие такого подхода - гибкость. Можно привести ссылки практически к любому виду.

Пункт «Добавлять суффикс к URL» приставляет в конце строки расширение документа. Например, html. Данное расширение мало интересует рядового посетителя сайта, поэтому опцию можно оставить в положении «Нет».

Алиасы в Unicode - данный пункт проводит транслитерацию названия материала в латиницу. Это нужно для того, чтобы вместо русских букв или других символов не отображалось нечто несуразное и нечитаемое.

Альтернативные компоненты для Joomla

Реализовать генератор ЧПУ-ссылок в Joomla также можно с помощью различных компонентов. Например, один из популярных - JoomSEF. Он распространяется бесплатно и лучше скачивать его с официального сайта Joomla.

В её функционал, помимо преобразования урлов в ЧПУ, имеется набор для генерирования метаданных, поисковых машин, ключевых слов, а также управления дублирующимися страницами. Стоит отметить имеющуюся поддержку кодировки UTF-8 и настройку страницы 404 по своему усмотрению.

В Joomla 3 возможны три способа установки: загрузкой напрямую с компьютера, из каталога сайта и посредством передачи ссылки на него.

Для первого варианта файл придётся скачать. Затем выбрать в меню административной панели CMS в «Расширения» и перейти в «Менеджер расширений». С помощью кнопки «Выберите файл» надо показать системе подготовленный архив и установить его.

Второй вариант используется редко. А вот третий является самым удобным из них, так как не требует скачивания. Достаточно всего лишь скопировать ссылку на JoomSEF и указать его в поле «Установить из URL» на одноимённой вкладке. Система сама проверит его наличие и при соответствии всех параметров установит.

Стоит отметить, что для полноценной работы дополнения, нужно чтобы пункты «Включить SEF», «Перенаправление URL» и «Добавлять суффикс к URL» в настройках SEO были переведены в положение «Да».

Установленный компонент сразу же внедрится в систему в активном режиме и начнёт свою работу. А именно, преобразует все имеющиеся ссылки в более эстетичный вид.

JoomSEF обладает большим количеством настроек и опций. С их помощью можно очень тонко привести все ссылки сайта практически к любому необходимому виду.

JBZoo и человекопонятный урл

Компонент JBZoo представляет собой универсальный и мощный инструмент для создания интернет-магазинов, каталогов, блогов и просто сайтов-визиток на базе системы управления контентом Joomla.

Для установки JBZoo в Joomla в ней уже должно присутствовать дополнение Zoo.

Иногда стандартные настройки SEF не дотягиваются до своих компонентов, чтобы выполнить преобразование. Поэтому для создания ЧПУ-ссылок в JBZoo рекомендуется применять компонент sh404SEF. Данный продукт бесплатен и является хорошим инструментом для формирования ссылок в JBZoo. настроек, функций, поддержки различных соцсетей и сервисов.

Установка производится путем копирования ссылки на архив, либо с помощью прямой загрузки файла на сервер, скачанного предварительно.

OpenCart и настройка ЧПУ

OpenCart — это платформа без привязки к какой-либо системе управления контентом. То есть функционирует отдельно. Ее главная направленность — удобное создание интернет-магазинов различной степени сложности. Несмотря на то что сам продукт бесплатен, многие дополнения к нему распространяются на коммерческой основе. Последняя стабильная версия — 2.0.

Начать настройку ЧПУ первым способом можно с редактирования конфигурационного файла htaccess веб-сервера Apache.

  • Для этого нужно перейти в папку сайта через FTP или имеющийся в административной памяти файловый менеджер.
  • В корневом каталоге должен лежать файл.htaccess.txt. Так как он не оказывает никакого действия на систему с расширением txt, то первое, что надо сделать — переименовать его в.htaccess. Теперь веб-сервер будет читать его директивы и исполнять их.
  • Теперь нужно перейти в настройки сайта и на вкладке «Сервер» включить использование ЧПУ.
  • Все изменения нужно сохранить.
  • Теперь все ссылки должны преобразится.

Иногда, ввиду некоторых причин, многие адреса все же не изменяются и остаются непонятными. Для реализации этой задачи можно использовать компонент SeoPro. Правда, перед его установкой придётся сначала реализовать OCMOD Multiline Fix. Для этого нужно вручную изменить код одного файла. Находится он по адресу admin/controller/extension/modification.php. Для его редактирования рекомендуется использовать утилиту Notepad++, чтобы избежать проблем с кодировками.

Добавить нужно всего одну строку кода в блок после переменной $limit. Выглядит она так:

  • $quote = $operation->getElementsByTagName("search")->item(0)->getAttribute("quote");
  • if (!$limit) {
  • $limit = -1;

и после него добавить:

  • if ($quote == "true") {
  • $search = preg_quote($search);

Затем надо собственно установить и сам модуль SeoPro. Скачанный архив нужно распаковать на сервере. Затем выполнить пару запросов в базу данных посредством phpmyadmin:

  • ALTER TABLE `oc_product_to_category` ADD `main_category` tinyint(1) NOT NULL DEFAULT "0"; ALTER TABLE `oc_product_to_category` ADD INDEX `main_category` (`main_category`);

Теперь нужно поправить главный файл index.php. В нем интересует строка:

  • $controller->addPreAction(new Action("common/seo_url"));

которая заменяется на:

  • if (!$seo_type = $config->get("config_seo_url_type")) {
  • $seo_type = "seo_url";
  • $controller->addPreAction(new Action("common/" . $seo_type));

Далее, идёт набор процедур, связанных с настройками внутри админки. В меню надо найти «Модули», перейти в «Модификаторы» и нажать на обновления. Находясь здесь же, нужно перейти к списку «Модули» и в нем установить SeoPro. Затем, по нажатию кнопки «Редактировать» зайти в него и сохранить. После всех манипуляций все должно заработать, если нет, то надо попробовать снова переустановить модуль. Или обратиться за помощью к специализированным форумам.

Реализация функционала ЧПУ на языке PHP

Большинство сайтов в Сети написаны на PHP. Он достаточно мощен, удобен и прост в изучении. Его работа незаметна для пользователя, так как обработка PHP-кода происходит на стороне сервера и браузеру отправляется уже готовая HTML-страница, понятная ему.

Показать реализацию ЧПУ-ссылок на PHP можно на небольшом примере кода. Однако для приведения строк адреса в реальных многостраничных проектах к человекопонятному виду, придётся повозиться.

Любой сайт начинает свою работу с файла index.php. В том числе и генерирует обращение к другим страницам сайта. Но сначала нужно немного изменить конфигурационный файл htaccess. В нем надо указать или расскомментировать несколько директив, как показано на фото.

Первая строка разрешает преобразовать URL с помощью сервера. Вторая — устанавливает базовый адрес. Следующие две строки выполняют проверки на присутствие файла и папки. Последняя передаёт управление в index.php, если 3 и 4 строка реализуются без ошибок.

Для хранения соответствия id страницы и её преобразованного значения нужна таблица. Поэтому её надо создать. В частности, можно создать простенькую, для понимания процесса. Она будет содержать два поля: SEF и page_id. SEF хранит название и имеет тип varchar. А page_id - номера страниц типа int.

Теперь осталось поправить и сам файл index.php. Это всего лишь пример и на практике конкретного проекта все может быть несколько иначе: $result = $_SERVER["REQUEST_URI"]. В данной строке в переменную $result передаётся запрошенный урл.

  • if (preg_match ("/([^a-zA-Z0-9\.\/\-\_\#])/", $result)) { header("HTTP/1.0 404 Not Found"); echo "Недопустимые символы в URL"; exit; }

В этом блоке проверяется наличие символов, цифр и некоторых знаков. Если присутствует что-то другое кроме перечисленных, то выдаётся страница 404.

  • $array_url = preg_split ("/(\/|\..*$)/", $result,-1, PREG_SPLIT_NO_EMPTY);

Здесь объявлен массив $array_url, в который с помощью функции preg_split помещаются элементы, не имеющие ничего лишнего в ЧПУ.

  • if (!$array_url) { $ID_page = 1; }else{ $sef_value = $array_url;

Здесь происходит обработка запроса в случае, когда обращение было произведено не к конкретной странице, а к домену. Поэтому нужно в ответ отправить id = 1. Также на этом месте подразумевается запрос к базе данных проекта, который узнает, имеется ли в ней значение из переменной $sef_value в поле SEF. Если ничего не найдено, отправить пользователю страницу 404. В конце идёт обработка полученного в результате кода адреса и выдача соответствующих материалов или элементов.

Плюсы и минусы использования ЧПУ

Преимущества использования человекопонятных урлов можно перечислить таким образом:

  • ссылка визуально выглядит эстетичнее, нежели набор непонятных символов, особенно на незнакомых сайтах;
  • запоминание адреса происходит гораздо легче;
  • весь путь и структура сайта становится понятной;
  • GET параметры, передающиеся обычным путем, используют переменные в адресной строке, чего нет в ЧПУ, а значит, не нарушается безопасность;
  • улучшение навигации по сайту;
  • СЕО-оптимизация значительно улучшается и поисковые роботы лучше индексируют такой сайт.

Недостатков гораздо меньше. И самый существенный из них - это настройка. Не всегда удаётся привести адреса страниц к человекопонятному виду путем штатных или сторонних решений. Иногда приходится вникать в код и править его самостоятельно, что требует знаний и времени. Второй недостаток не так существенен и касается сайтов с большой посещаемостью. Из-за формирования ссылок на «лету» повышается нагрузка на сайт. Но так как стоимость сетевого оборудования неуклонно снижается, то такие затраты на ресурсы сервера мало кто считает. В общем, преимущества значительно перевешивают недостатки, поэтому несмотря на сложную реализацию человекопонятных урлов, использовать их стоит.

Заключение

В статье рассмотрено, какие ссылки являются ЧПУ, а какие нет. Были подробно расписаны наиболее простые и быстрые решения проблемы. А также несколько самых доступных вариантов сложных подходов. В любом случае использование CMS при разработке сайта значительно снижает трудо- и временные затраты при оптимизации адресов страниц. Поэтому связка CMS и ЧПУ должна быть использована как наиболее эффективная альтернатива ручной разработке.

На вопрос, как сделать станок с ЧПУ, можно ответить кратко. Зная о том, что самодельный фрезерный станок с ЧПУ, в общем-то, – непростое устройство, имеющее сложную структуру, конструктору желательно:

  • обзавестись чертежами;
  • приобрести надёжные комплектующие и крепежные детали;
  • подготовить хороший инструмент;
  • иметь под рукой токарный и сверлильный станки с ЧПУ, чтобы быстро изготовить.

Не помешает просмотреть видео – своеобразную инструкцию, обучающую – с чего начать. А начну с подготовки, куплю всё нужное, разберусь с чертежом – вот правильное решение начинающего конструктора. Поэтому подготовительный этап, предшествующий сборке, – очень важен.

Работы подготовительного этапа

Чтобы сделать самодельный ЧПУ для фрезерования, есть два варианта:

  1. Берёте готовый ходовой набор деталей (специально подобранные узлы), из которого собираем оборудование самостоятельно.
  2. Найти (изготовить) все комплектующие и приступить к сборке ЧПУ станка своими руками, который бы отвечал всем требованиям.

Важно определиться с предназначением, размерами и дизайном (как обойтись без рисунка самодельного станка ЧПУ), подыскать схемы для его изготовления, приобрести или изготовить некоторые детали, которые для этого нужны, обзавестись ходовыми винтами.

Если принято решение создать станок ЧПУ своими руками и обойтись без готовых наборов узлов и механизмов, крепёжных деталей, нужна та схема, собранный по которой станок будет работать.

Обычно, найдя принципиальную схему устройства, сначала моделируют все детали станка, готовят технические чертежи, а потом по ним на токарном и фрезерном станках (иногда надо использовать и сверлильный) изготовляют комплектующие из фанеры или алюминия. Чаще всего, рабочие поверхности (называют еще рабочим столом) – фанерные с толщиной 18 мм.

Сборка некоторых важных узлов станка

В станке, который вы начали собирать собственноручно, надо предусмотреть ряд ответственных узлов, обеспечивающих вертикальное перемещение рабочего инструмента. В этом перечне:

  • винтовая передача – вращение передаётся, используя зубчатый ремень. Он хорош тем, что не проскальзывают на шкивах, равномерно передавая усилия на вал фрезерного оборудования;
  • если используют шаговый двигатель (ШД) для мини-станка, желательно брать каретку от более габаритной модели принтера – помощнее; старые матричные печатные устройства имели достаточно мощные электродвигатели;

  • для трёхкоординатного устройства, понадобится три ШД. Хорошо, если в каждом найдётся 5 проводов управления, функционал мини-станка возрастёт. Стоит оценить величину параметров: напряжения питания, сопротивления обмотки и угла поворота ШД за один шаг. Для подключения каждого ШД нужен отдельный контроллер;
  • с помощью винтов, вращательное движение от ШД преобразуется в линейное. Для достижения высокой точности, многие считают нужным иметь шарико-винтовые пары (ШВП), но это комплектующая не из дешевых. Подбирая для монтажа блоков набор гаек и крепежных винтов, выбирают их со вставками из пластика, это уменьшает трение и исключает люфты;

  • вместо двигателя шагового типа, можно взять обычный электромотор, после небольшой доработки;
  • вертикальная ось, которая обеспечивает перемещение инструмента в 3D, охвачивая весь координатный стол. Её изготовляют из алюминиевой плиты. Важно, чтобы размеры оси были подогнаны к габаритам устройства. При наличии муфельной печи, ось можно отлить по размерам чертежей.

Ниже – чертёж, сделанный в трёх проекциях: вид сбоку, сзади, и сверху.

Максимум внимания – станине

Необходимая жесткость станку обеспечивается за счёт станины. На нее устанавливают подвижной портал, систему рельсовых направляющих, ШД, рабочую поверхность, ось Z и шпиндель.

К примеру, один из создателей самодельного станка ЧПУ, несущую раму сделал из алюминиевого профиля Maytec – две детали (сечение 40х80 мм) и две торцевые пластины толщиной 10 мм из этого же материала, соединив элементы алюминиевыми уголками. Конструкция усилена, внутри рамы сделано рамку из профилей меньших размеров в форме квадрата.

Станина монтируется без использования соединений сварного типа (сварным швам плохо удаётся переносить вибронагрузки). В качестве крепления лучше использовать Т-образные гайки. На торцевых пластинах предусмотрена установка блока подшипников для установки ходового винта. Понадобится подшипник скольжения и шпиндельный подшипник.

Основной задачей сделанному своими руками станку с ЧПУ умелец определил изготовление деталей из алюминия. Поскольку ему подходили заготовки с максимальной толщиной 60 мм, он сделал просвет портала 125 мм (это расстояние от верхней поперечной балки до рабочей поверхности).

Этот непростой процесс монтажа

Собрать самодельные ЧПУ станки, после подготовки комплектующих, лучше строго по чертежу, чтобы они работали. Процесс сборки, применяя ходовые винты, стоит выполнять в такой последовательности:

  • знающий умелец начинает с крепления на корпусе первых двух ШД – за вертикальной осью оборудования. Один отвечает за горизонтальное перемещение фрезерной головки (рельсовые направляющие), а второй за перемещение в вертикальной плоскости;
  • подвижной портал, перемещающийся по оси X, несет фрезерный шпиндель и суппорт (ось z). Чем выше будет портал, тем большую заготовку удастся обработать. Но у высокого портала, в процессе обработки, – снижается устойчивость к возникающим нагрузкам;

  • для крепления ШД оси Z, линейных направляющих используют переднюю, заднюю, верхнюю, среднюю и нижнюю пластины. Там же сделайте ложемент фрезерного шпинделя;
  • привод собирают из тщательно подобранных гайки и шпильки. Чтобы зафиксировать вал электродвигателя и присоединить к шпильке, используют резиновую обмотку толстого электрокабеля. В качестве фиксатора могут быть винты, вставленные в нейлоновую втулку.

Затем начинается сборка остальных узлов и агрегатов самоделки.

Монтируем электронную начинку станка

Чтобы сделать своими руками ЧПУ станок и управлять ним, надо оперировать правильно подобранным числовым программным управлением, качественными печатными платами и электронными комплектующими (особенно если они китайские), что позволит на станке с ЧПУ реализовать все функциональные возможности, обрабатывая деталь сложной конфигурации.

Для того, чтобы не было проблем в управлении, у самодельных станков с ЧПУ, среди узлов, есть обязательные:

  • шаговые двигатели, некоторые остановились напримере Nema;
  • порт LPT, через который блок управления ЧПУ можно подключить к станку;
  • драйверы для контроллеров, их устанавливают на фрезерный мини-станок, подключая в соответствии со схемой;

  • платы коммутации (контроллеры);
  • блок электропитания на 36В с понижающим трансформатором, преобразующем в 5В для питания управляющей цепи;
  • ноутбук или ПК;
  • кнопка, отвечающая за аварийную остановку.

Только после этого станки с ЧПУ проходят проверку (при этом умелец сделает его пробный запуск, загрузив все программы), выявляются и устраняются имеющиеся недостатки.

Вместо заключения

Как видите, сделать ЧПУ, которое не уступит китайским моделям, – реально. Сделав комплект запчастей с нужным размером, имея качественные подшипники и достаточно крепежа для сборки, эта задача – под силу тем, кто заинтересован в программной технике. Примера долго искать не придётся.

На фото внизу – некоторые образцы станков, имеющих числовое управление, которые сделаны такими же умельцами, не профессионалами. Ни одна деталь не делалась поспешно, произвольным размером, а подходящая к блоку с большой точностью, с тщательным выверением осей, применением качественных ходовых винтов и с надёжными подшипниками. Верно утверждение: как соберешь, так и работать будешь.

На ЧПУ выполняется обработка дюралевой заготовки. Таким станком, который собрал умелец, можно выполнить много фрезерных работ.

Еще один образец собранного станка, где плиту ДВП используют как рабочий стол, на котором возможно изготовление печатной платы.

Каждый, кто начнет делать первое устройство, скоро перейдет и к другим станкам. Возможно, захочет испытать себя в качестве сборщика сверлильного агрегата и, незаметно, пополнит армию умельцев, собравших немало самодельных устройств. Занятия техническим творчеством сделают жизнь людей интересной, разнообразной и насыщенной.

Это мой первый станок с ЧПУ собранный своими руками из доступных материалов. Себестоимость станка около 170$.

Собрать станок с ЧПУ мечтал уже давно. В основном он мне нужен для резки фанеры и пластика, раскрой каких-то деталей для моделизма, самоделок и других станков. Собрать станок руки чесались почти два года, за это время собирал детали, электронику и знания.

Станок бюджетный, стоимость его минимальна. Далее я буду употреблять слова, которые обычному человеку могут показаться очень страшными и это может отпугнуть от самостоятельной постройки станка, но на самом деле это всё очень просто и легко осваивается за несколько дней.

Электроника собрана на Arduino + прошивка GRBL

Механика самая простая, станина из фанеры 10мм + шурупы и болты 8мм, линейные направляющие из металического уголка 25*25*3 мм + подшипники 8*7*22 мм . Ось Z движется на шпильке M8, а оси X и Y на ремнях T2.5 .

Шпиндель для ЧПУ самодельный , собран из бесколлекторного мотора и цангового зажима + зубчатая ременная передача. Надо отметить, что мотор шпинделя питается от основного блока питания 24 вольта. В технических характеристиках указано, что мотор на 80 ампер, но реально он потребляет 4 ампера под серьёзной нагрузкой. Почему так происходит я объяснить не могу, но мотор работает отлично и справляется со своей задачей.

Изначально ось Z была на самодельных линейных направляющих из уголков и подшипников, позже я переделал её, фотки и описание ниже.

Рабочее пространство примерно 45 см по X и 33 см по Y, по Z 4 см. Учитывая первый опыт, следующий станок я буду делать с большими габаритами и на ось X буду ставить два мотора, по одному с каждой строны. Это связано с большим плечом и нагрузкой на него, когда работа ведётся на максимальном удалении по оси Y. Сейчас стоит один мотор и это приводит к искажению деталей, круг получается немного элипсом из-за возникающего прогибания каретки по X.

Родные подшипники у мотора быстро разболтались, потому что не рассчитаны на боковую нагрузку, а она тут серьёзная. Поэтому сверху и снизу на оси установил два больших подшипника диаметром 8 мм, это надо было бы делать сразу, сейчас из-за этого есть вибрация.

Здесь на фото видно, что ось Z уже на других линейных направляющих, описание будет ниже.

Сами направляющие имеют очень простую конструкцию, её я как-то случайно нашел на Youtube . Тогда мне эта конструкция показалась идеальной со всех сторон, минимум усилий, минимум деталей, простая сборка. Но как показала практика эти направляющие работают не долго. На фото видно какая канавка образовалась на оси Z после недели моих тестовых запусков ЧПУ станка.

Самодельные направляющие на оси Z я заменил на мебельные, стоили меньше доллара за две штуки. Я их укоротил, оставил ход 8 см. На осях X и Y ещё остались направляющие старые, менять пока не буду, планирую на этом станке вырезать детали для нового станка, потом этот просто разберу.

Пару слов о фрезах. Я никогда не работал с ЧПУ и опыт фрезерования у меня тоже очень маленький. Купил я в Китае несколько фрез, у всех 3 и 4 канавки, позже я понял, что эти фрезы хороши для металла, для фрезерования фанеры нужны другие фрезы. Пока новые фрезы преодолевают расстояние от Китая до Беларуси я пытаюсь работать с тем, что есть.

На фото видно как фреза 4 мм горела на берёзовой фанере 10 мм, я так и не понял почему, фанера чистая, а на фрезе нагар похожий на смолу от сосны.

Далее на фото фреза 2 мм четырёхзаходная после попытки фрезерования пластика. Этот кусок расплавленного пластика потом очень плохо снимался, откусывал по чуть-чуть кусачками. Даже на малых оборотах фреза все равно вязнет, 4 канавки явно для металла:)

На днях у дяди был день рождения, по этому случаю решил сделать подарок на своей игрушке:)

В качестве подарка сделал аншлаг на дом из фанеры. Первым делом попробовал фрезеровать на пенопласте, чтобы проверить программу и не портить фанеру.

Из-за люфтов и прогибаний подкову получилось вырезать только с седьмого раза.

В общей сложности этот аншлаг (в чистом виде) фрезеровался около 5 часов + куча времени на то, что было испорчено.

Как-то я публиковал статью про ключницу , ниже на фото эта же ключница, но уже вырезанная на станке с ЧПУ. Минимум усилий, максимум точность. Из-за люфтов точность конечно не максимум, но второй станок я сделаю более жестким.

А ещё на станке с ЧПУ я вырезал шестерёнки из фанеры , это намного удобнее и быстрее, чем резать своими руками лобзиком.

Позже вырезал и квадратные шестерёнки из фанеры , они на самом деле крутятся:)

Итоги положительные. Сейчас займусь разработкой нового станка, буду вырезать детали уже на этом станке, ручной труд практически сводится к сборке.

Нужно освоить резку пластика, потому как встала работа над самодельным роботом-пылесосом . Собственно робот тоже подтолкнул меня на создание своего ЧПУ. Для робота буду резать из пластика шестерни и другие детали.

Update: Теперь покупаю фрезы прямые с двумя кромками (3.175*2.0*12 mm), режут без сильных задиров с обоих сторон фанеры.

Итак, вы решили построить самодельный ЧПУ фрезерный станок или, может быть, вы просто над этим только задумываетесь и не знаете с чего начать? Есть много преимуществ в наличии машины с ЧПУ. Домашние станки могут производить фрезерование и резать практически все материалы. Будь вы любитель или мастер, это открывает большие горизонты для творчества. Тот факт, что один из станков может оказаться в вашей мастерской, еще более соблазнителен.

Есть много причин, по которым люди хотят построить собственный фрезерный станок ЧПУ своими руками. Как правило, это происходит потому, что мы просто не можем позволить себе купить его в магазине или от производителя, и в этом нет ничего удивительного, ведь цена на них немаленькая. Или же вы можете быть похожи на меня и получать массу удовольствия от собственной работы и создания чего-то уникального. Вы можете просто заниматься этим для получения опыта в машиностроении.

Личный опыт

Когда я впервые начал разрабатывать, продумывать и делать первый ЧПУ фрезер своими руками, на создание проекта ушел примерно один день. Затем, когда начал покупать части, я провел небольшое исследование. И нашел кое-какие сведения в различных источниках и форумах, что привело к появлению новых вопросов:

  • Мне действительно нужны шарико-винтовые пары, или обычные шпильки и гайки будут работать вполне нормально?
  • Какой линейный подшипник лучше, и могу ли я его себе позволить?
  • Двигатель с какими параметрами мне нужен, и лучше использовать шаговик или сервопривод?
  • Деформируется ли материал корпуса слишком сильно при большом размере станка?
  • И т.п.

К счастью, на некоторые из вопросов я смог ответить благодаря своей инженерно-технической базе, оставшейся после учебы. Тем не менее, многие из проблем, с которыми я бы столкнулся, не могли быть рассчитаны. Мне просто нужен был кто-то с практическим опытом и информацией по этому вопросу.

Конечно, я получил много ответов на свои вопросы от разных людей, многие из которых противоречили друг другу. Тогда мне пришлось продолжить исследования, чтобы выяснить, какие ответы стоящие, а какие – мусор.

Каждый раз, когда у меня возникал вопрос, ответ на который я не знал, мне приходилось повторять тот же процесс. По большему счету это связано с тем, что у меня был ограниченный бюджет и хотелось взять лучшее из того, что можно купить за мои деньги. Такая же ситуация у многих людей, создающих самодельный фрезерный станок с ЧПУ.

Комплекты и наборы для сборки фрезеров с ЧПУ своими руками

Да, есть доступные комплекты станков для ручной сборки, но я еще не видел ни одного, который можно было бы подстроить под определенные нужды.

Также нет возможности вносить изменения в конструкцию и тип станка, а ведь их много, и откуда вы знаете, какой из них подойдет именно вам? Независимо от того, насколько хороша инструкция, если конструкция продумана плохо, то и конечная машина будет плохой.

Вот почему вам нужно быть осведомленным относительно того, что вы строите и понимать какую роль играет каждая деталь!

Руководство

Это руководство нацелено на то, чтобы не дать вам совершить те же ошибки, на которые я потратил свое драгоценное время и деньги.

Мы рассмотрим все компоненты вплоть до болтов, глядя на преимущества и недостатки каждого типа каждой детали. Я расскажу о каждом аспекте проектирования и покажу, как создать ЧПУ фрезерный станок своими руками. Проведу вас через механику к программному обеспечению и всему промежуточному.

Имейте в виду, что самодельные чертежи станков с ЧПУ предлагают немного способов решения некоторых проблем. Это часто приводит к «неаккуратной» конструкции или неудовлетворительному функционированию машины. Вот почему я предлагаю вам сначала прочитать это руководство.

ДАВАЙТЕ НАЧНЕМ

ШАГ 1: Ключевые конструктивные решения

В первую очередь необходимо рассмотреть следующие вопросы:

  1. Определение подходящей конструкции конкретно для вас (например, если будете делать станок по дереву своими руками).
  2. Требуемая площадь обработки.
  3. Доступность рабочего пространства.
  4. Материалы.
  5. Допуски.
  6. Методы конструирования.
  7. Доступные инструменты.
  8. Бюджет.

ШАГ 2: Основание и ось X-оси

Тут рассматриваются следующие вопросы:

  1. Проектирование и построение основной базы или основания оси X.
  2. Жестко закрепленные детали.
  3. Частично закрепленные детали и др.

ШАГ 3: Проектирование козловой оси Y

  1. Проектирование и строительство портальной оси Y.
  2. Разбивка различных конструкций на элементы.
  3. Силы и моменты на портале и др.

ШАГ 4: Схема сборки оси Z

Здесь рассматриваются следующие вопросы:

  1. Проектирование и сборка сборки оси Z.
  2. Силы и моменты на оси Z.
  3. Линейные рельсы / направляющие и расстояние между подшипниками.
  4. Выбор кабель-канала.

ШАГ 5: Линейная система движения

В этом пункте рассматриваются следующие вопросы:

  1. Подробное изучение систем линейного движения.
  2. Выбор правильной системы конкретно для вашего станка.
  3. Проектирование и строительство собственных направляющих при малом бюджете.
  4. Линейный вал и втулки или рельсы и блоки?

ШАГ 6: Компоненты механического привода

В этом пункте рассматриваются следующие аспекты:

  1. Детальный обзор частей привода.
  2. Выбор подходящих компонентов для вашего типа станка.
  3. Шаговые или серводвигатели.
  4. Винты и шарико-винтовые пары.
  5. Приводные гайки.
  6. Радиальные и упорные подшипники.
  7. Муфта и крепление двигателя.
  8. Прямой привод или редуктор.
  9. Стойки и шестерни.
  10. Калибровка винтов относительно двигателей.

ШАГ 7: Выбор двигателей

В этом шаге необходимо рассмотреть:

  1. Подробный обзор двигателей с ЧПУ.
  2. Типы двигателей с ЧПУ.
  3. Как работают шаговые двигатели.
  4. Типы шаговых двигателей.
  5. Как работают сервомоторы.
  6. Типы серводвигателей.
  7. Стандарты NEMA.
  8. Выбор правильного типа двигателя для вашего проекта.
  9. Измерение параметров мотора.

ШАГ 8: Конструкция режущего стола

  1. Проектирование и строительство собственных столов при малом бюджете.
  2. Перфорированный режущий слой.
  3. Вакуумный стол.
  4. Обзор конструкций режущего стола.
  5. Стол можно вырезать при помощи фрезерного станка с ЧПУ по дереву.

ШАГ 9: Параметры шпинделя

В этом шаге рассматриваются следующие вопросы:

  1. Обзор шпинделей с ЧПУ.
  2. Типы и функции.
  3. Ценообразование и затраты.
  4. Варианты монтажа и охлаждения.
  5. Системы охлаждения.
  6. Создание собственного шпинделя.
  7. Расчет нагрузки стружки и силы резания.
  8. Нахождение оптимальной скорости подачи.

ШАГ 10: Электроника

В этом пункте рассматриваются следующие вопросы:

  1. Панель управления.
  2. Электропроводка и предохранители.
  3. Кнопки и переключатели.
  4. Круги MPG и Jog.
  5. Источники питания.

ШАГ 11: Параметры контроллера Программного Управления

В этом шаге рассматриваются следующие вопросы:

  1. Обзор контроллера ЧПУ.
  2. Выбор контроллера.
  3. Доступные опции.
  4. Системы с замкнутым контуром и разомкнутым контуром.
  5. Контроллеры по доступной цене.
  6. Создание собственного контроллера с нуля.

ШАГ 12. Выбор программного обеспечения

В этом пункте рассматриваются следующие вопросы:

  1. Обзор программного обеспечения, связанного с ЧПУ.
  2. Подбор программного обеспечения.
  3. Программное обеспечение CAM.
  4. Программное обеспечение САПР.
  5. Програмное обеспечение NC Controller.

——————————————————————————————————————————————————–