Дата публикации: 2016-05-11
От автора: приветствую вас, друзья. В этой небольшой статье мы с вами поговорим о ЧПУ (человеку понятных урлах) в DLE. Статью я назвал "Как убрать id новости в DLE", поскольку именно этот вопрос интересует многих пользователей этой CMS. Итак, давайте посмотрим, возможно ли это?
Итак, давайте начнем с того, какие же варианты ЧПУ нам предлагает DLE из коробки. Всего нам предлагается три варианта ЧПУ на выбор, которые называются незамысловато: Тип 1, Тип 2 и Тип 3. Вот что они из себя представляют:
Тип 1 — ссылки на полную новость будут иметь вид http://domen/id-имя новости. html
Тип 2 — ссылки на полную новость будут иметь вид http://domen/категория/подкатегория/id-имя новости. html
Тип 3 — ссылки на полную новость будут иметь вид http://domen/2008/04/02/имя новости. html, внимание данный тип несет повышенную нагрузку на сервер
Хотите быстро научиться создавать сайты и блоги на WordPress с уникальным дизайном?
Получите самую полную в Рунете бесплатную систему обучения создания сайтов на WordPress
Примеры и описания ссылок я скопировал прямо из справки по ЧПУ в админпанели DLE. Найти ее можно и, соответственно, выбрать нужный тип ЧПУ, в разделе Настройки скрипта — Настройка системы:
Обратите внимание, кроме опции выбора типа ЧПУ, есть также две дополнительные настройки: первая позволяет включить ЧПУ, вторая — обрабатывает неверные ЧПУ.
Но вернемся к типам ЧПУ. Как видим, все три варианта достаточно привлекательны. Пожалуй, я бы остановился на первом или втором варианте, они мне больше по душе. Однако в каждом из выбранных вариантов в начале названия новости присутствует ее id, т. е. часть ссылки будет иметь следующий вид — 5-bukingemskiy-dvorec. html, где цифра 5 — это и есть id новости.
На мой взгляд, ничего критичного в этом нет и URL от лишней цифры не стал менее читабельным и привлекательным. Однако, если вы перфекционист, то лишняя циферка в ссылке вполне может мозолить глаза. Понимаю.
К сожалению, DLE не предоставляет нам другого типа ЧПУ, где бы не было ID новости, а было лишь ее название. Почему так? Сложно сказать. В сети можно встретить мнение, что сделано это в целях быстродействия. Поскольку id в таблице новостей имеет первичный ключ, это значит, что найти нужную запись по id можно очень быстро и DLE достанет нам полный текст по id новости действительно быстро. Если же убрать id и искать новость по ее алиасу (название транслитом), тогда процесс будет идти тем медленнее, чем больше новостей на сайте.
Однако это не совсем так, поскольку данная проблема надумана и легко решается. Достаточно проиндексировать поле, в котором хранится алиас, и поиск по данному полю будет производиться так же быстро, как и по полю id с первичным ключом. К слову, поле alt_name в таблице dle_post проиндексировано, для него установлен индекс KEY, т. е. выборка по данному полю будет осуществляться быстро. Так что проблема, как я и сказал выше, надумана и реализовать еще один тип ЧПУ или же просто убрать из двух первых ненужные ID — вполне реально.
Возможно, разработчики DLE в последующих версиях движка внесут соответствующие изменения, но пока что мы вынуждены довольствоваться тем, что есть, поскольку без изменений в коде самого движка убрать id новости в DLE не получится.
К слову, разработчики всегда принимают предложения от пользователей для будущих версий движка. Можете внести свое предложение, если такового еще нет, или проголосовать за уже внесенное здесь .
На этом я с вами прощаюсь. Удачи!