Не работает перестроение публикаций, как исправить?
вопрос
Собственно проблема в названии. Версия DLE 14.
После запуска такое:
Общее количество новостей: 1530, обработано: 100 ошибка отправки
В консоле такая ошибка:
Unchecked runtime.lastError: The message port closed before a response was received. admin.php?mod=rebuild:1
На двух других сайтах, с той же версии скрипта, перестроение публикаций работает без проблем.
Подскажите пожалуйста, в чем может быть причина, в какую сторону искать причины и как исправить.
-
DONATE to NULLED!
Форуму и его команде можно помочь, мотивировать модераторов разделов.
Помогите модератору этого раздела killoff лично.
Помощь ошибка в перестроение публикаций
-
Автор темы
warayg
-
Дата начала
5 Июл 2012
- Статус
- В этой теме нельзя размещать новые ответы.
- Автор темы
-
#1
Здравствуйте, подскажите плиз, что могло случиться с DLE 9.5, перестало работать «Перестроение публикаций», пару дней назад все работало, ни чего не менял, только добавлял новые новости, после нажатия «продолжить перестроение» выводит: Общее количество новостей: 56, обработано новостей: 0 ошибка отправки
- Автор темы
-
#2
Не ужели ни кто не сталкивался с таким? Чистил базу, удалил все новости, перестроение публикаций работало пока не добавил большую статью, потом снова перестало работать ((
- Заблокирован
-
#3
Во первых тему твою наверное не замечали потому, что ты не потрудился префикс в названии поставить, а? Во вторых твою тему не замечали потому, что описания проблемы в ней 0: «у меня поломалось а что и как — гадайте сами, вы же телепаты.
перестроение публикаций работало пока не добавил большую статью, потом снова перестало работать ((
Предположу, что возможно лимитов php на выполнение скрипта перестало хватать. Или у тебя не переделанна под большие статьи база (поля короткой и полной новостей не LONGTEXT). Вариантов масса, пока ты не опишеш проблему номрально это будет гадание на кофейной гуще.
- Автор темы
-
#4
Извиняюсь, но не понимаю как подробнее проблему описать и о каком префиксе в названии поста идет речь? )) Установил DLE 9.5, заполнял статьями, все работало, так как я использую фильтр слов, то у меня много ссылок в тексте получается (Ключевое слово заменяется на ссылку к статье касающейся этого слова) и для того чтоб в старых статьях эти ссылки появились я и использую перестроение публикаций, чтоб их вручную не пересохранять, так вот, все работало, после добавления относительно большой статьи перестает работать перестроение публикаций. В базе заменил TEXT на LONGTEXT, не помогло. Сайт тестирую и заполняю пока локально, использую Денвер.
- Заблокирован
-
#5
Извиняюсь, но не понимаю как подробнее проблему описать и о каком префиксе в названии поста идет речь? ))
Обрати внимание на то, как называется тема сейчас и вспомни, как называлась. Можеш ткнуть кнопку создания темы новой и спосотреть на внимательне слева от поля ввода заголовка темы.
Как подробнее писать создавая тему есть в правилах раздела в закрепленых темах. Как минимум версию ДЛЕ ты указал вот только в последнем посте.
В базе заменил TEXT на LONGTEXT, не помогло. Сайт тестирую и заполняю пока локально, использую Денвер.
1) Денвер это, к сожалению, денвер. Попробуй скачать XAMPP Для просмотра ссылки Войди или Зарегистрируйся и повторить все на нем.
2) Если ты говориш, чт окосяк в конкреной новости, попробуй повторить все удалив эту новость. Потом (если получится) накидай дальше новостей и попробуй снова. Если будет работать пробуй новость частями добавлять. Мне кажется причина может крыться либо в размере новости, либо во времени исполнения скрипта в денвере либо в каком либо левом знаке, присутствующем в новости. У тебя ср1251 или утф?
3) 9.6 уже черти когда вышла. Попробуй в ней это сделать, возможно в 9.5 есть баг какой-то, который в 9.6 вылечили.
- Автор темы
-
#6
У меня cp1251. На XAMPP та же фигня, ставил 9.6, загружал статьи из бэкапа и тоже не работает перестроение ((
- Заблокирован
-
#7
У меня cp1251. На XAMPP та же фигня, ставил 9.6, загружал статьи из бэкапа и тоже не работает перестроение ((
Давай конкретно:
1) это пробелма с 1 статьей или с несколькими?
2) если доваблять остальные статьи (много) то проблема не появляется а при добавлении этой — снова есть?
3) если ты эту статью добавляеш по-абзацам, сохраняеш и перестраиваеш новости ты можеш найти то место, когда перестроение перестает работать?
4) если пропустить проблемный абзац то новость добавляется и перестраивается корректно?
Чтоб не флудить проверяй по пунктам все и напиши сразу все 4 ответа. И если все по пунктам работает и абзац косячный найден то может его имеет смысл переписать? Или проверить на предмет проблемных знаков (например исходник когда-то был юникодом с непечатным в cp1251 символом и т.п.?
И попробуй версию с utf-8 поставить и конвертнуть базу в него, возможно проблема исчезнет.
- Автор темы
-
#8
Выложил сайт на хостинг, перелинковка не работала, вручную пересохранил все статьи и заработало ))) пипец. В чем был трабл, так и не понял.
- Статус
- В этой теме нельзя размещать новые ответы.
-
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.
26.02.16 17:35 | ||
DLE ошибка перестроения публикаций После интеграции в DLE 10.2 cp1251 UPPOD, по мануалу http://dle-faq.ru/modules/6002-integraciya-uppod-v-dle-10.html перестал работать модуль перестроение публикаций. Интересно то, что замечено это было уже после переезда на новый хостинг. Погуглив нашел решение. Решил записать, дабы кому то моголо и я не забыл. ошибка Apache [:error] [pid 25348] [client 93.222.168.144:37898] PHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/admin/web/сайт.ру/public_html/engine/classes/parse.class.php on line 396, referer: http://сайт.ру/admin.php?mod=rebuild файл: /engine/classes/parse.class.php найти: $source = preg_replace( «#[uppod=([^]]+)]#ies», «$this->build_uppod(‘\1’)», $source ); заменить на:
{jcomments on} |
||
Последнее обновление 11.03.18 09:58 |
Интересная статья? Поделись ей с другими:
Содержание
- Перестроение публикаций dle не работает
- Интернет-пользователям позволят отказаться от рекомендательных алгоритмов
- Как правильно удалить страницы с сайта и избежать проблем
- Перестроение публикаций dle не работает
- Внимание!
- Поисковые системы
- Яндекс
- Каталоги сайтов
- Прочие поисковики
- Агрегаторы и доски объявлений
- Практика оптимизации
- Общие вопросы оптимизации
- Частные вопросы — ранжирование, индексация, бан
- Сервисы и программы для работы с SE
- Любые вопросы от новичков по оптимизации
- Ссылочные и пользовательские факторы
- Поисковые технологии
- Doorways & Cloaking
- Трафик для сайтов
- Поисковая и контекстная реклама
- Google Adwords
- Яндекс.Директ
- Тизерная и баннерная реклама
- Общие вопросы рекламы
- Монетизация сайтов
- Партнерские программы в Интернете
- Контекстная реклама
- Google AdSense
- Рекламная Сеть Яндекса
- Размещение тизерной и баннерной рекламы
- Общие вопросы
- Сайтостроение
- Веб-строительство
- Статистика и аналитика
- Доменные имена
- Администрирование серверов
- Хостинг
- Безопасность
- Usability и удержание посетителей
- Копирайтинг
- Социальный Маркетинг
- Вконтакте
- YouTube
- Facebook & Instagram
- TikTok
- Telegram
- Общие вопросы
- Общение профессионалов
- Семинары и конференции
- eCommerce, интернет-магазины и электронная коммерция
- Телефония и коммуникации для бизнеса
- Деловые вопросы
- Финансы
- Cчет в Яндекс.Деньгах
- Криптовалюты
- Инвестиции
- Экономика
- Правовые вопросы
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты — покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки — обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
- О сайте и форуме
- Самое разное
- Курилка
- Встречи и сходки
- Железо и софт
Интернет-пользователям позволят отказаться от рекомендательных алгоритмов
Как правильно удалить страницы с сайта и избежать проблем
Перестроение публикаций не помогает. Фактически надо открыть и сохранить каждую новость, их порядка 13к, потому вручную не получается.
Буду благодарен тому, кто подскажет как можно реализовать.
И тишина, неужели нет никаких идей?😒
Перестроение публикаций и есть открыть-сохранить, после кеш попробуй очистить.
перестроение увы не помогает, открыть-сохранить для 13 к новостей увы никак.
Вы либо к экстрасенсам обратитесь за помощью, либо изложите суть проблемы. Возможно, тогда кто-то поможет дельным советом.
На сайте 13к новостей. Сайт на днях перенес на новый дизайн, в котором есть поиск по каталогу (это когда по первой букве в названии новостей идет поиск, к пример сайт/catalog/Ё/).
Проблема в том, что указав данную настройку в dle, она срабатывает для новых новостей, но не работает для уже существующих.
Чтобы выложенные ранее новости также появились в каталоге необходимо их пересохранить. Т.е. открыть новость, нажать кнопку «сохранить» и так каждую.
Учитывая, что их 13к , сделать это вручную нереально. Потому и спрашиваю нет ли какого другого способа реализовать?
Источник
Перестроение публикаций dle не работает
Были подготовлены и реализованы следующие изменения:
1. Добавлен мастер переноса адреса вашего сайта с одного домена на другой. Вы можете быстро в один клик сменить имя домена вашего сайта со старого на новый. Данный мастер проведет автоматическую замену вашего домена в публикациях, комментариях, статических страницах, баннерах и аватарах пользователей. Запускается данный мастер в панели управления, в настройках скрипта, рядом с настройкой адреса вашего сайта.
2. Для системы плагинов добавлена возможность указывать исполняемый PHP код, при установке плагина, его обновлении, включении, отключении и удалении. Тем самым плагин при выполнении этих действий может выполнять какие-либо более сложные действия при необходимости.
3. Для системы плагинов добавлена возможность указывать c какого вхождения производить действия с искомыми строками. Например, в файле находится несколько одинаковых строк, и вам необходимо произвести действия только начиная со второй нужной строки, то вы можете это указать в плагине.
4. Для системы плагинов добавлена возможность указывать для плагина обязательное наличие другого плагина. Вы можете в плагине указать имя другого плагина, который должен быть обязательно установлен. При этом данный плагин будет выполнен уже после выполнения основного плагина. Тем самым вы можете создавать дополнения не только для стандартного DLE, но и для плагинов. И создавать плагины для плагинов.
5. Для системы плагинов добавлена корректная работа с переносом на новую строку, в заменяемом коде, если данный перенос стоит в самом начале кода, на который необходимо заменить или который необходимо добавить.
6. Для MySQL запросов, использующихся в плагинах, добавлено использование тега , который указывает, какой движок MySQL использует DLE при создании таблиц в базе данных. Может принимать значения InnoDB или MyISAM.
7. Внесены изменения в систему установки и включения плагинов, в случаях, когда плагин не соответствует необходимым требованиям. В случаях, когда, например, плагин требует наличие какой-либо версии DLE, а установленная версия DLE не соответствует этому, то плагин все равно будет добавлен на сайт, но при этом будет добавлен в выключенном состоянии. Тем самым пользователь сможет самостоятельно отредактировать в дальнейшем плагин, и внести в него необходимые изменения непосредственно в админпанели. Тоже самое и касается других требований плагина. Включить плагин на сайте можно будет только, если несоответствия требованиям были устранены.
8. Добавлена стандартизация порядка выполнения плагинов в системе. Плагины будут выполняться строго по принципу: первый добавленный в систему, будет выполнен раньше. Выполнение плагинов будет независимо от того, редактировался ли плагин в админпанели или нет. Также если плагин имеет зависимость от другого плагина, то в первую очередь будет выполнен плагин, от которого он зависит.
9. Добавлена поддержка отложенной загрузки изображений в браузер для публикаций. Данная возможность включается в настройках скрипта в панели управления. При включении данной опции, изображения в новостях будут загружаться в браузер не сразу при загрузке страницы, а по мере прокрутки пользователем страницы и непосредственного просмотра данных картинок. Данное нововведение позволяет ускорить загрузку страниц в браузер и снизить расход трафика сервера.
10. Добавлена поддержка reCAPTCHA v3. При использовании данного вида каптчи, вашим пользователям не придется больше выбирать какие-либо картинки, и вообще осуществлять каких-либо дополнительные действия на сайте. Проверка на то робот это или человек осуществляется полностью автоматически в фоновом режиме, незаметно для посетителей вашего сайта. Внимание! При включении данного вида каптчи вам необходимо будет сформировать новые ключи на сайте сервиса Google, непосредственно для reCAPTCHA v3.
11. Для автоматического обновления скрипта добавлена поддержка ручных изменений в файле .htaccess, находящегося в корне сайта. При обновлении данный файл не будет полностью заменен на оригинальный, а в нем будут лишь произведены необходимые изменения в стандартных функциях. Тем самым все ручные изменения, сделанные в нем владельцем сайта, останутся неизменными. Тоже самое осуществляется и для файла крона, который вы настроите для выполнения своих действий по крону.
12. Внесены изменения в работу автоматического обновления скрипта в пределах одной версии. При выходе патчей, исправляющее какие-либо ошибки в пределах одной версии скрипта, будет происходить только установка изменений в виде патча, обновляя только измененные файлы, а не всех файлов целиком, как ранее.
13. Для предварительного просмотра публикаций добавлено автоматическое распознавание выбранной категории, и в случае если для нее назначен отдельный шаблон, то будет загружен тот шаблон для просмотра, который назначен для данной категории. Тем самым если для разных категорий назначены различные шаблоны, то они будут также использоваться и при предварительном просмотре.
14. Для модуля «Перекрестные ссылки» в панели управления скриптом, добавлена возможность использования подсказок для ссылок (атрибут title). Данное нововведение позволяет улучшить SEO оптимизацию сайта, а также более гибко создавать сайты для людей с ограниченными возможностями.
15. Добавлено автоматическое перестроение похожих публикаций для новости в случае ее редактирования. При редактировании новости, для нее будет автоматически произведен поиск похожих новостей. Ранее для повторного поиска похожих публикаций, требовалось сбросить кеш похожих новостей в соответствующем разделе админпанели.
16. Добавлена автоматическая синхронизация закладок пользователей в случае удаления публикации с сайта. Если новость удаляется с сайта, то все для всех пользователей, которые ее добавляли в свои закладки, произойдет автоматическое удаление ее из закладок и синхронизация счетчика закладок у данных пользователей.
17. Добавлена поддержка протокола magnet: для ссылок публикуемых на сайте при помощи BB тегов и в визуальных редакторах.
18. Добавлена поддержка загрузки и обработки изображений в формате WEBP. Теперь изображения в этом формате можно напрямую загружать с использованием DataLife Engine, при этом он будет создавать уменьшенные копии и накладывать водяные знаки, если это необходимо.
19. Добавлена полная поддержка MySQL линейки 8.x.
20. Добавлена полная поддержка PHP линейки 7.3.x.
21. Для тега [ifxfvalue tagname=»tagvalue»] Текст [/ifxfvalue] который выводит текст в случае если значение тега совпадает с указанным значением, добавлена поддержка перечисления нескольких значений через запятую. Например, тег [ifxfvalue gorod=»Москва, Казань, Екатеринбург»] Текст [/ifxfvalue] выведет указанный текст, если дополнительное поле с именем gorod содержит в себе одно из указанных значений. Тем самым значительно упрощается верстка шаблона в различных сценариях.
22. Для системы управления рекламными материалами в админпанели, добавлена возможность поиска по ним. Вы можете осуществлять поиск по названиям, по описаниям и по используемому рекламному коду в них.
23. В админпанели, в разделе управления баннерами, добавлена более информативная визуализация того отображается ли баннер на сайте или нет. Например, если баннер имеет ограничения на показ по времени или по просмотрам, или по кликам, и согласно им, баннер уже отключен от показа, то в разделе редактирования баннеров также будет отображено, что баннер на текущий момент выключен.
24. Добавлена возможность поиска по новостям и статическим страницам на мобильных устройствах (смартфоны, планшеты) в панели управления скриптом.
25. Для расширенного поиска по статическим страницам добавлена возможность выбора области поиска. Вы можете осуществить либо поиск по всем полям, либо отдельно по названию, описанию, и тексту статической страницы.
26. Существенно улучшены алгоритмы поиска по статическим страницам. Благодаря этого поиск по статическим страницам осуществляется более точно, и позволяет более правильно искать необходимые страницы, по заданным критериям поиска.
27. Существенно улучшено быстродействие DataLife Engine и снижена нагрузка на базу данных, при использовании на сайте мультикатегорий. Запросы к базе данных были переписаны таким образом, что больше не используют регулярных выражений при обращении к БД, тем самым было существенно улучшено быстродействие скрипта и снижена нагрузка на сервер.
28. Существенно улучшено быстродействие DataLife Engine и снижена нагрузка на базу данных, при показе публикаций по ключевым словам, из облака тегов.
29. Существенно улучшено быстродействие DataLife Engine и снижена нагрузка на базу данных, при показе публикаций, найденных при использовании дополнительных полей, имеющих свойство «использование как перекрестных ссылок».
30. Для расширенного поиска по новостям и статическим страницам, добавлена возможность быстрого сброса параметров поиска на значения по умолчанию.
31. Лимит на количество символов метатега Description для статических страниц увеличен до 300 символов. Максимальная длина соответствует теперь максимальной длине, установленной поисковой системой Google, для вывода данной информации в результатах поиска.
32. Внесены изменения в механизмы формирования метатега og:image, предназначенного для публикации данный в социальные сети. Теперь, в случае если в публикации стоит уменьшенная копия, то в данном теге будет формироваться ссылка на полное оригинальное изображение, тем самым, социальные сети содержащие ограничения на минимальные размеры картинок, будут получать максимально возможный оригинал изображения.
33. Добавлен контроль неверных ЧПУ при просмотре публикаций на основе каталога по символьному коду, заданному в публикациях. А также улучшен контроль неверных ЧПУ при просмотре полных новостей.
34. Добавлена возможность использования запятых, при написании описаний в дополнительных полях, имеющих тип «изображение» и «галерея изображений».
35. Для дополнительных полей, имеющих тип «Перекрестные ссылки», добавлена возможность использования в значениях символа плюса, например, можно использовать такие значения как C++ и т.д.
36. Для ключевых слов, предназначенных для облака тегов публикаций, добавлена поддержка таких символов как двойные кавычки, плюс, и ряд других. Убраны практически любые ограничения на символы в облаке, оставлены ограничения только на использование HTML кода.
37. Для шаблона RSS потока, добавлена возможность использования HTML форматирования разбитого на несколько строк, использующегося для формирования турбо контента для яндекса.
38. Улучшена обработка изображений в формате PNG в случаях использования некоторых прозрачных изображений. А также улучшено наложение водяных знаков на данные картинки.
39. Добавлена поддержка работы тегов [newscount=X] текст [/newscount] и [not-newscount=X] текст [/not-newscount] для пользовательского вывода публикаций при помощи тега , в случаях если этот вывод используется в шаблонах вывода кратких публикаций.
40. Добавлена возможность использования пробелов для разделителей списка перекрестных ссылок в дополнительных полях, если для данных полей включена опция: «Использовать значения полей как перекрестные гиперссылки».
41. Обновлены визуальные редакторы TinyMCE и Froala до актуальных версий. Исправлен ряд выявленных ошибок в данных редакторах.
42. Исправлена проблема, при которой некорректно работала система контроля неверных ЧПУ для дополнительных полей публикаций, имеющих тип перекрестные ссылки, в случае если значения этих полей содержали кавычки.
43. Исправлена проблема, при которой в закладках на сайте могли отображаться отправленные на модерацию публикации.
44. Исправлена проблема, при которой некорректно отображались фигурные скобки в комментариях при использовании на сайте AJAX навигации для комментариев.
45. Исправлена проблема, при которой не все шаблонные теги дополнительных полей публикаций, корректно обрабатывались в шаблоне main.tpl в случае если пользователь переходил на отсутствующую новость.
46. Исправлена проблема, при которой теги некорректно обрабатывались при показе публикаций с использованием тега , в случае если при этом пользователем просматривалась полная новость.
47. Исправлена проблема с работой тегов [available . ] и [not-available . ], в случае просмотра пользователем страниц публикаций по символьному коду, если символьный код не указан, либо равен, например, нулю «0».
48. Исправлена проблема, при которой в некоторых случаях мог некорректно работать контроль неверных ЧПУ в полных новостях, в случае если DLE был установлен не в корне сайта, в подпапки.
49. Исправлена проблема, при которой могли выводится новости, при просмотре следующих и предыдущих публикаций, опубликованные на будущее время, несмотря на запрет на их вывод в настройках скрипта.
50. Исправлена проблема, при которой могли не отображаться дополнительные поля, имеющие тип галерея и изображение, при предварительном просмотре публикации, если в данных полях использовались описания к картинкам.
51. Исправлены обнаруженные и заявленные ранее небольшие ошибки в скрипте.
Ссылки для скачивания скрипта для клиентов:
Внимание!
Если вы еще не являетесь нашим клиентом, то вы можете приобрести скрипт на нашем сайте.
Источник
Привет, друзья. Наконец-то пришло время для третьей части моего мега-руководства по оптимизации DLE.
Только сейчас с ужасом осознал, что предыдущая вторая часть руководства вышла более полугода назад!
По сложившейся традиции мы будем говорить о внутренней оптимизации сайта, а конкретно в этой части я расскажу про некоторые особенности движка и мелкие, но очень полезные фишки и хаки, которые не подошли по формату в предыдущих частях.
Эта часть так же связана с адресами страниц, но в отличии от второй части, где мы боролись с дублями и исключали их появление, в этой части мы рассмотрим, как избавиться от несуществующих страниц, появившихся в результате удаления или ошибки в адресе.
Пост обновлен 6 мая 2014 года:
Обновлены вносимые в движок изменения, добавлена поддержка новых версий движка.
Актуально для следующих версий DLE: 7.x, 8.x, 9.x, 10.x!
Другие части SEO-руководства:
Часть 1, Оптимизация заголовков Title — https://alaev.info/blog/post/2373
Часть 2, Борьба с дублированием контента — https://alaev.info/blog/post/2400
Часть 4, Исправление для версий DLE 9.3, 9.4, 9.5, 9.6 — https://alaev.info/blog/post/3513
Редирект с несуществующих страниц пагинации на правильные и существующие
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Фишка была придумана буквально сегодня, когда я нашел множество 404 ошибок на одном из сайтов в панели вебмастера.
Возьмем вполне реальную ситуацию – по какой-то причине вы решили изменить количество новостей, выводимых на главной странице или страницах категорий. Как случилось у меня: редизайн сайта; структура страниц полностью поменялась; было решено выводить больше кратких анонсов новостей на каждой странице (было 7, стало 10). Итог был следующим — в панели вебмастера появилось много страниц с 404 ошибками. Простая арифметика, было на сайте 1000 новостей, на каждой странице выводилось по 7 анонсов, следовательно, только на главной у нас получается 1000/7=142 страницы пагинации. После изменений страниц стало ровно 100. В итоге 42 страницы просто пропали. А если возьмем еще категории, то несуществующих страниц уже сотня-две. Это плохо, некрасиво и вообще не тру.
Раскрыть список правок
Открываем файл /engine/modules/show.short.php и в самом низу находим:
ВЫШЕ добавляем:
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая $all_pages_count = @ceil( $count_all / $config['news_number'] ); if ($cstart > $all_pages_count) { if ($all_pages_count > 1) { header('HTTP/1.1 301 Moved Permanently'); header ('Location: ' . $url_page . '/page/' . $all_pages_count . '/'); die(); } else { header('HTTP/1.1 301 Moved Permanently'); header ('Location: ' . $url_page . '/'); die(); } } //редирект на последнюю страницу, если в url указана страница больше чем максимально существующая
Скрыть список правок
Немного поясню код: идет проверка на условие — если номер текущей страницы больше чем максимальное количество страниц на сайте (или в категории), то происходит редирект на последнюю страницу. Если запрашивается страница номер 2, а страниц всего одна, то происходит редирект на гравную страницу (или главную страницу категории).
Пример на пальцах, кто-то запрашивает страницу сайта site.ru/page/435/, а на этом сайте всего 268 страниц, следовательно, случится редирект на адрес site.ru/page/268/.
Редирект с несуществующих страниц пагинации комментариев на правильные
Актуальность: Только версии DLE 8.x, 9.x. Для DLE 10.x не актуально, т.к. уже реализовано в самом движке.
Аналогичная ситуация с пагинацией в комментариях. Может возникнуть такая ситуация, что, например, вам наспамили в комментариях, поисковики проиндексировали все страницы комментариев, а потом вы это заметили и удалили все комменты. Но страницы, которые проиндексировал поисковик, все равно останутся, просто на них не будут отображаться никакие комментарии, а будет полный дубль основной страницы новости. И это печально, надо исправлять!
Раскрыть список правок
Открываем файл /engine/classes/comments.class.php и в самом низу находим:
ВЫШЕ добавляем:
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая if ( $this->cstart > $enpages_count ) { header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $url); die(); } //редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая
Скрыть список правок
Ну вот, теперь все в порядке, можете проверить.
Редирект со ссылок с лишними символами или неправильным окончанием на верные адреса
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Типичная ситуация – добродушный посетитель вашего сайта решил поделиться ссылочкой на понравившийся материал в своем уютном бложике на ЖЖ или на МоемМире. Спасибо ему за это, молодец! Только вот беда – пользователь не знаком с html как таковым, он ничего кроме визуального редактора в глаза не видел. У меня таких «простофиль» на emofans.ru пруд пруди, ссылками делятся направо и налево. Так вот, вставил ссылочку человек в свой блог, да нечаянно окончание в ссылке потер (получилось не site.ru/123-page_name.html
, а site.ru/123-page_name.htm
), а проверить забыл, так и осталась «битая» ссылка на веки вечные, а в панели вебмастера ошибка затаилась и глаза мозолит! Или еще живой пример, пользователь не потер окончание, а, наоборот, в визуальном редакторе слилась ссылка с текстом (получилось не site.ru/123-page_name.html
, а что-то в духе site.ru/123-page_name.html,где
), и опять ошибки свалились на вебмастерскую голову. Таких примеров у меня много, специально не исправлял эти ошибки до написания данного поста, чтобы не забыть.
Раньше тут было очень сложное решение, которое зависело от версии движка. Но с момента написания данного поста я достаточно прокачал свои умения, чтобы составить универсальное решение для всех версий DLE и вообще совершенно для любого движка или любого сайта!
Раскрыть список правок
Открываем .htaccess, который лежит в корне и находим:
# Редиректы RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]
ВЫШЕ добавляем:
RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.*).html(.+) [OR] RewriteCond %{REQUEST_URI} ^(.*).htm$ [OR] RewriteCond %{REQUEST_URI} ^(.*).ht$ [OR] RewriteCond %{REQUEST_URI} ^(.*).h$ [OR] RewriteCond %{REQUEST_URI} ^(.*).$ RewriteRule ^(.*).(.*) $1.html [R=301,L]
Скрыть список правок
Вне зависимости от выбранного типа ЧПУ при переходе по любой «кривой» ссылке посетитель попадет туда, куда должен был попасть.
Редирект с разделов или категорий, которых больше не существует, на главную страницу
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Пример из жизни: вы решили поменять структуру сайта или просто удалили какие-то категории за ненадобностью, следовательно, эти страницы перестанут существовать, а ссылки на них могут где-то остаться. Например, на emofans’е у меня когда-то были блоги для пользователей, доступные по адресу site.ru/blog/, а в них шло деление на пользователей, вот так site.ru/blog/user1/, site.ru/blog/user2/ и т.д. Уже много лет как я снес эти блоги за ненадобностью, а ссылки на них и ошибки в панели вебмастера живут.
Еще данная правка позволит избежать появления адресов страниц полной новости без расширения на конце или вообще адресов полной новости когда отсутствует целый кусок url в конце. Таким образом, в сочетании с предыдущим пунктом, эти изменения помогут на 99% избежать появления неверных и нежелательный адресов.
Раскрыть список правок
Открываем файл /engine/engine.php и находим:
if (!$category_id) $category_id = 'not detected';
ЗАМЕНЯЕМ на:
//решение проблемы с категориями, которых не существует if (!$category_id AND $view_template != "rss") { header("HTTP/1.0 301 Moved Permanently"); header("Location: {$config['http_home_url']}"); die("Redirect"); } //решение проблемы с категориями, которых не существует
Скрыть список правок
Теперь все категории или каталоги, которые не существуют и не имеют своего id (проверка на существование идет именно по id) будут редиректиться на главную страницу.
Редирект для публикаций, у которых отсутствует ID, на главную страницу
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Еще одна реальная история, взятая с моих сайтов. В панели вебмастера висит много страниц с ошибкой 404 такого вида site.ru/category/subcat/page-name.html, а по правилам должно быть так site.ru/category/subcat/123-page_name.html. Вот честно, до сих пор не понимаю, каким образом и почему пропал ID новости и кто ссылался на публикации таким образом. Никаких модулей и хаков, которые убирают из url его идентификатор я никогда не использовал, так что грешу на пользователей, которые «криво» ставят ссылки в своих бложеках на мой сайт. Ну да ладно, это уже не важно, а важно разобраться с этой проблемой!
Только для версий DLE 10.x (а так же для 9.5, 9.6, 9.7 и 9.8)
Новая версия кода помимо того, что редиректит «проблемные» адреса страниц полной новости, но так же редиректит на главную еще и несуществующие или удаленные статические страницы. Связано это с изменившейся логикой в движке. С одной стороны, наверное, это хорошо, ведь одним махом две проблемы решаем. С другой стороны, изначально движок выдает обычную 404 ошибку — если вас устраивает такое положение дел, тогда не вносите правки, описанные в этом пункте.
Раскрыть список правок
Открываем файл /engine/modules/static.php и находим в самом конце:
@header( "HTTP/1.0 404 Not Found" ); $lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']); msgbox( $lang['all_err_1'], $lang['static_page_err'] );
ЗАМЕНЯЕМ на:
// 301 редирект на главную с адресов страниц новостей, где пропал id, а так же несуществующих статических страниц header("HTTP/1.0 301 Moved Permanently"); header("Location: {$config['http_home_url']}"); die("Redirect"); // 301 редирект на главную с адресов страниц новостей, где пропал id, а так же несуществующих статических страниц
Скрыть список правок
Старое решение. Только для версий DLE 7.x, 8.x, 9.0, 9.2 и 9.3
Все адреса, содержащие на конце .html и не содержащие в себе ID будут редиректиться на главную страницу. Существующие и корректные статические страницы, хоть и они так же не имеют ID в url-адресе, редиректиться не будут, а будут работать как и прежде.
Раскрыть список правок
Открываем все файл /engine/engine.php и находим:
if ($subaction == '') $subaction = "showfull"; }
НИЖЕ добавляем:
// 301 редирект на главную с адресов страниц новостей, где пропал id if ( ( $config['allow_alt_url'] == "yes" ) && (strpos($_SERVER['REQUEST_URI'], '.html') !== false) && ($dle_module == "main") ) { header("HTTP/1.0 301 Moved Permanently"); header("Location: {$config['http_home_url']}"); die("Redirect"); } // 301 редирект на главную с адресов страниц новостей, где пропал id
Скрыть список правок
Редирект для удаленных или несуществующих новостей на главную
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Ну, тут стандартная ситуация и может встретиться на любом сайте. Вы удалили какую-то новость и, понятное дело, будет выдаваться 404 ошибка. Если вас это не устраивает, а именно то, что выдается 404 ошибка, то можно сделать, например, 301-редирект на главную страницу сайта, которая уж точно существует
Раскрыть список правок
Открываем файл /engine/modules/show.full.php и находим:
elseif( ! $news_found ) { @header( "HTTP/1.0 404 Not Found" ); msgbox( $lang['all_err_1'], $lang['news_err_12'] ); }
ЗАМЕНЯЕМ на:
// 301 редирект на главную, если новость не найдена/не существует elseif( ! $news_found ) { header("HTTP/1.0 301 Moved Permanently"); header("Location: {$config['http_home_url']}"); die("Redirect"); } // 301 редирект на главную, если новость не найдена/не существует
Скрыть список правок
Теперь при переходе на несуществующую или удаленную публикацию будет осуществляться редирект на главную страницу сайта.
А вообще, ребята, у меня есть отдельный очень большой пост про 301-редирект на все случаи жизни.
Я вам рекомендую с ним ознакомиться, независимо от того, работаете ли вы только с DLE или другой какой-то CMS.
Запрещаем индексацию разделов сайта при помощи мета-тега robots
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Итак, помните я недавно публиковал пост про особенности индексации сайтов, robots.txt и мета-тег robots, где говорил, что закрывать страницы от индексации при помощи robots.txt не тру, а вот закрывать при помощи <meta name="robots" content="noindex">
правильный вариант. Настоятельно рекомендую изучить данный пост.
А сейчас я расскажу, как можно реализовать вывод этого самого метатега в движке DLE в определенных разделах сайта.
Расширенную версию данного трюка смотрите в посте про правильный robots.txt для DLE.
Если не чувствуете в себе уверенности, настоятельно рекомендую использовать мой модуль DonBot! С модулем вы по любому не ошибетесь нигде, а так же вам не придется после каждого обновления движка вносить данные правки.
Раскрыть список правок
Открываем уже полюбившийся файл /engine/engine.php, находим бесполезную строку и удаляем:
<meta name="robots" content="all" />
Если такой строки нет, ничего страшного, просто идем дальше.
Находим далее:
if ($config['allow_rss']) $metatags .= <<<HTML <link rel="alternate" type="application/rss+xml" title="{$rss_title}" href="{$rss_url}" /> HTML;
ВЫШЕ добавляем:
if ($subaction == 'userinfo' OR $subaction == 'allnews' OR $subaction == 'newposts' OR $do == 'stats' OR $do == 'addnews' OR $do == 'register' OR $do == 'favorites' OR $do == 'rules' OR $do == 'pm' OR $do == 'feedback' OR $do == 'lastcomments' OR $do == 'lostpassword' OR $do == 'search' OR $do == 'lastnews' OR $do == 'alltags' OR $do == 'tags' OR $dle_module == 'date') $metatags .= <<<HTML n<meta name="robots" content="noindex,nofollow" /> HTML;
Если вы хотите закрыть от индексации страницы пагинации, типа site.ru/page/X/ или site.ru/category/page/X/, тогда необходимо добавить одну строчку:
(intval($_GET['cstart']) > 1 )
В итоге код, приведенный выше преобразуется так:
if ($subaction == 'userinfo' OR $subaction == 'allnews' OR ... $dle_module == 'date' OR (intval($_GET['cstart']) > 1 )) $metatags .= <<<HTML n<meta name="robots" content="noindex,nofollow" /> HTML;
Скрыть список правок
Теперь я поясню, что означает каждый из пунктов условия if, и я для вас подготовил замечательную табличку с описанием.
Модуль | Описание | Пример URL |
---|---|---|
userinfo | Просмотр профиля пользователя. | site.ru/user/user_name/ |
allnews | Просмотр новостей конкретного пользователя. | site.ru/user/user_name/news/ |
newposts | Просмотр новинок, индивидуально для каждого пользователя, доступно только зарегистрированным, гостям показывается ошибка. | site.ru/newposts/ |
stats | Страница статистики сайта и ТОП10 пользователей. | site.ru/statistics.html |
addnews | Страница добавления новости на сайт. | site.ru/addnews.html |
register | Страница формы регистрации нового пользователя. | site.ru/index.php?do=register |
favorites | Просмотр избранного, индивидуально для каждого пользователя, доступно только зарегистрированным, гостям показывается ошибка. | site.ru/favorites/ |
rules | Страница правил сайта, которые показываются перед регистрацией, которые существуют так же отдельной страницей. | site.ru/rules.html |
pm | Просмотр личных сообщений пользователем или форма отправки личного сообщения любому пользователю сайта. | site.ru/index.php?do=pm |
feedback | Страница обратной связи. | site.ru/feedback.html |
lastcomments | Просмотр всех комментариев к публикация на сайте в обратном хронологическом порядке. | site.ru/index.php?do=lastcomments |
lostpassword | Страница восстановления пароля. | site.ru/index.php?do=lostpassword |
search | Раздел поиска по сайту. | site.ru/index.php?do=search |
lastnews | Просмотр всех последних новостей сайта. Точная копия главной страницы сайта и всех страниц пагинации. | site.ru/lastnews/ |
alltags | Просмотр страницы всех тегов сайта. | site.ru/tags/ |
tags | Просмотр публикаций с конкретным тегом. | site.ru/tags/Tag+Name/ |
date | Архив сайта. Список публикаций за определенный год или месяц или день. | site.ru/2007/ или site.ru/2007/06/ или site.ru/2007/06/22/ |
* Самый важный момент — при закрытии от индексации страниц описанным методом, необходимо убрать запрещающие правила в robots.txt для страниц и разделов, которые мы закрыли при помощи мета-тага. Иначе никакого смысла не будет.
На свое усмотрение вы можете из приведенного мною кода убрать какие-то части, разделы, которые конкретно для вашего сайта закрывать от индексации не требуется. Так что, пожалуйста, будьте внимательнее.
Добавляем тег rel=”canonical” для страниц просмотра полной новости
Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.
Помнится, кто-то в комментариях одной из предыдущих частей просил рассказать, как выводить тег rel=”canonical” в публикациях на сайте, так вот, кто не видел моего комментария с описанием данного метода, читайте дальше.
Раскрыть список правок
Открываем файл /engine/modules/show.full.php и…
для версий DLE 7.x, 8.x, 9.0, 9.2 и 9.3 находим:
} else { $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id']; $print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id']; $short_link = ""; }
для версий DLE 10.x (а так же для 9.5, 9.6, 9.7 и 9.8) находим:
} else { $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id']; $print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id']; $short_link = ""; $link_page = ""; $news_name = ""; }
НИЖЕ добавляем:
$full_canonical = $full_link;
Открываем файл /engine/engine.php и находим:
if ($config['allow_rss']) $metatags .= <<<HTML
ВЫШЕ добавляем:
if ($full_canonical) { $metatags .= <<<HTML <link rel="canonical" href="{$full_canonical}" /> HTML; }
Скрыть список правок
Как бы и все Кому надо, пользуйтесь на здоровье.
Что-то я, наверное, забыл описать в данном посте, так как информацию, описанную тут, собирал в течение длительного времени в голове, а не записывал в блокнот. Но если вы что-то вспомните или найдете необычные ошибки на своем сайте – обязательно пишите в комментариях, я придумаю решение вашей проблемы и добавлю его в пост.
Спасибо за внимание, друзья, оставайтесь на связи и подписывайтесь на новости блога.
PS Я не уверен, будет ли следующая часть руководства, так как на данный момент писать в ней нечего, все, что могло бы быть полезным, уже описано в существующих трех частях. Но мало ли… Все зависит от вас и ваших вопросов и предложений!
При переходе на протокол HTTPS: возникает ряд проблем, которые необходимо решать. Не составили исключения и сайты на скрипте DLE. В сети на эту тему написано много статей и дано немало советов общего плана, но мне хотелось поведать как решить все вопросы именно на этом движке.
Не появлялись некоторые картинки, видео, а в адресной строке писалось, что на сайте заблокирован непонятный для меня опасный контент. Опишу пошагово что надо делать. После установки сертификата SSL(мне установили спецы из техподдержки хостинга) сразу прописал новый протокол https: в админке движка, по адресу: /admin.php?mod=options&action=syscon добавив букву s и сохранил.
Далее в админке переходим в раздел Поиск и замена по адресу: /admin.php?mod=search и меняем по всей базе протокол своего домена http: на https:
Сразу хочу напомнить, что в устаревших версиях движка, (у меня версия 9.8) в которых настройки старые и все ссылки роликов с Youtube по умолчанию превращаются в ссылки со старым протоколом и все вставленные видео блокируются и больше не видны, а далее статья отправляется в базу данных и там хранятся в неизменном виде. Решение здесь простое.
Заходим engine/classes/parse.class.php и делаем массовую замену (Ctrl+H) через любой редактор:
http:// > https://
http://www. > https://www.
А можно и вручную каждую ссылку на видеоресурсы подредактировать. Например в текстовом редакторе AkelPad все ссылки подсвечиваются синим цветом, не пропустите. Надо пройти файл до самого низа, там еще будут дублироваться ссылки на видеохостинги. После редактирования файла заливаем его назад и идем в адмиинку в раздел перестроения публикаций /admin.php?mod=rebuild
Страниц с новостями у меня много и поэтому перестроение заняло около 5 часов. Но деваться было некуда, надо чтобы все настройки редактирования вступили в силу. Если этого не сделать, то по каким-то причинам смайлы вставляются в комментарии по старому протоколу http: и только после перестроения устанавливается адрес с правильным протоколом https:
После всех этих процедур страницы сайта будут правильно отображаться, с зеленым замочком в Мозилле и Opera, а в Хроме даже с надписью «Надежный»
Если же у вас появится на замочке желтый треугольник в Мозилле
или пропадет сам замочек в другом браузере, значит у вас на странице появилось смешанное содержимое, т.е. грузятся картинки или другой объект с незащищенного сайта по протоколу http: Например, если у вас на странице вставлена картинка с http://www.radikal.ru/ . Этот хостинг хранения изображений не имеет безопасного соединения и использует устаревший протокол http: Здесь надо либо удалять такие картинки, используя другой, защищенный сервис, либо мириться с этим обстоятельством. Выбор за вами.
Если же непонятно, по какой причине пропало защищенное соединение, надо через клавишу F12 в консоли посмотреть, что является смешанным содержимым и попытаться исправить ошибку:
Ну вот и все основные моменты, которые могут возникнуть при переходе на защищенный протокол. Но могут возникнуть непредвиденные ситуации и тут уже надо искать причину самостоятельно.
Радио онлайн
Мы вКонтакте
Дружественный сайт
Полезный софт
Похожие публикации
Добавил новое дополнительное поле, постов 10 тысяч, доп поле срабатывает после пересохранения новости. Как массово пересохранить? Редактирование массовое и «опубликовать новость» не помогает, только заходить в редактирование новости и сохранять, и так в каждую.
А форум DLE? Тех. поддержка? — они очень оперативно отвечают
lott
11.10.2019 18:55
можно обновить цмс, если нет доп модулей..