sonyps4.ru

Powered by dle исправительно трудовой. Удаляем стандартные копирайты в DataLife Engine

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

Главная страница, данные:
Данные предоставлены с 3х сайтов:



Полученные результаты можно сгруппировать кликнув по параметру прямо в таблице.
Гуппировать можно по: коду страны, IP адресу, URL, типу страницы, количеству запросов в БД (базу данных), поисковому боту, типу запроса.
Иконка рядом с IP это User-Agent посетителя:

Имейте ввиду, что злоумышленник может легко подставлять любой User-Agent и представляться хоть гуглоботом, хоть яндексом.
Красным цветом подсвечивается IP адрес который по данным базы сайта blocklist.de является каким-либо ботом или еще чем-то вредным.
Общее время окрашивается оранжевым цветом если время загрузки превысило 0.5 сек, красным - если дольше 1 сек и если дольше 2 сек, то приписываются восклицательные знаки.
Количество запросов иногда может быть и 100 и 1000 и даже 5000. Это нормальная работа движка, раз в 2 часа крон переносит количество просмотров новостей из одной таблицы в другую (если включено кеширование просмотров).

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


Выбраны несколько параметров:

При группировании результатов по какому-либо параметру в таблице добавляется колонка "Количество".
Пример группировки по URL:


Таким образом легко можно посмотреть какие страницы пользуются популярностью за любой промежуток времени.

Группируем данные по IP:


Тут видно кто сколько сделал запросов, кликнув по IP можно посмотреть все его запросы. Если был выбран диапазон дат, то будет отображена активность только за выбранный промежуток времени.

Группировать можно по одному любому из параметров представленных на скриншоте:

Так же можно отсортировать результаты по любому из параметров по любому направлению. Вот пример страницы где показаны страницы с самой долгой загрузкой:

Отдельно опишу функционал кнопок:
Кнопка "Сбросить все параметры " обнуляет все выбранные параметры, т.е. просто открывает исходную главную страницу.
"Экспорт в Excel " - позволяет скачать все отфильтрованные результаты в текстовом формате, которые легко импортируются в Excel файл простым перетаскиванием файла в рабочую область программы Excel.
"Очистить лог " - удаляет из базы все отфильтрованные результаты. Если не выбран ни один из фильтров, то очищена будет вся таблица.

Страница статистики
Для удобства и наглядности можно посмотреть общую статистику по определенным параметрам:


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


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

Страница с подозрительными IP адресами
В модуле можно включить анализ активности, который наблюдает за активностью пользователей и при достижении заданных параметров пользователь добавляется в список подозрительных и админу отправляется письмо с уведомлением.
Уведомление отправляется не чаще 1 раза в час.
Под заданными параметрами подразумевается совершение X запросов за Y минут. X и Y - можно изменить в настройках.


Результаты отсортированы по общему количеству запросов. В колонке даты стоит дата фиксации последней подозрительной активности. Красным подсвечены адреса которые находятся в списке подозрительных у сервиса blocklist.de
Если вы уверены, что IP адрес не является зловредом или это поисковый бот, вы можете добавить его в "Белый лист", список адресов на которые не будет реагировать анализатор подозрительной активности.
С одного адреса совершались запросы с частотой 6 запросов в секунду. Вероятнее всего это какой-то бот. А вот что делать с ним - решать уже вам. Заблокировать в htaccess или проигнорировать.

Настройки



Подробно описывать все параметры не буду, там и так вроде все ясно, опишу только непонятные.
Анализ . Сейчас стоят параметры 10 запросов за 1 минуту. Т.е. любой пользователь или бот, который зайдет на сайт более 10 раз в течении 1 минуты - будет считаться подозрительными и будет занесен в базу. А если указан E-Mail адрес, то так же будет отправлено уведомление на почту.
Браузер . В базу записывается значение User-Agent пользователя. Этот параметр увеличивает объем памяти в БД, но если это не критично, то желательно не выключать.
Реферер . В базу записывается адрес - откуда пришел посетитель. Аналогично браузеру так же увеличивает объем БД.
Количество записей на страницу . Сколько записей выводится в админке на главной на 1 страницу.
Время хранения лога . Модуль автоматически удаляет старые данные.
Подсветка ботов . Этот параметр позволяет проверять все IP адреса по базе сайта blocklist.de Данные с сайта обновляются автоматически при входе в админку 2 раза в сутки.
Белый список IP адресов . В списке с новой строки перечислены IP адреса поисковых ботов. В данном случае несколько гуглов и один яндекс. Можно записывать как полный адрес, так и первые несколько его чисел, у поисковиков довольно таки много IP адресов, чтобы перечислять их всех
Идентификаторы ботов . Тут перечислены все основные боты. Этот параметр позволяет группировать/фильтровать по общим ботам. Например только Yandex, а у него уже подвиды: YandexBot, YandexMobileBot, YandexMetrika и т.п.
Внешняя база данных . При большом желании можно хранить лог в другой базе данных. Лично я не рекомендую использовать этот параметр, потому что это может увеличить время загрузки страницы, особенно если сервер стоит в германии, а БД в США.

По вопросу о нагрузке.
Она ничтожно мала. Скорость работы никак не сказывается на работе сайта. Со включенным анализом активности, средняя скорость работы модуля - 0.0012 сек. Это при активности 2000 просмотров в час.
Установка модуля заключается в заливке файлов на сервер и копировании 1 строки в 1 php файл.

Информация
Стоимость модуля: 15wmz
Лицензия выдается под 2 сайта .
Стоимость доп.лицензии: 5wmz
Для работы модуля - требуется ionCube Loader v.5.x

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

На главной странице модуля выводится упрощенная поисковая форма фильтра и таблица с данными:

Можно применить фильтр по дате, по IP или совместно. Например посмотреть все запросы с определенного IP за конкретную дату. Или просто отсортировать по общему времени загрузки, чтобы посмотреть какие страницы медленно загружаются. При клике на IP в таблице - применяется фильтр по выбранному IP. При клике на URL - открывается выбранная страница в новом окне.

Примечание: Календарь работает только в новой админке.

Данные по одному IP за конкретную дату:

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

По умолчанию данные чистятся автоматически, удаляются все записи старше 7 дней . Количество дней можно настроить в файле index.php
Нагрузка от модуля незначительная, при средней посещаемости время выполнения порядка 0.001 сек.


Популярность CMS DataLife Engine не уменьшается среди веб-мастеров выбирающих движок для создания своего проекта, но существует множество негативных высказываний в адрес seo-оптимизированности DLE. Разработчик с выходом каждой новой версии скрипта постепенно устраняет seo-недоработки и замечания, но не всё сразу...
В этой статье мы коснёмся вопроса, как провести внутреннюю SEO оптимизацию DLE уже сейчас и без особых проблем и знаний.

Работаем с файлом robots.txt :
User-agent: *
Disallow: /2013/
Disallow: /tags/
Disallow: /user/
Disallow: /favorites/
Disallow: /lastnews/
Disallow: /newposts/
Disallow: /catalog/
Disallow: /*page/
Disallow: /*print
Disallow: /addnews.html
Disallow: /statistics.html
Disallow: /rules.html
Disallow: /dle-rules-page.html
Disallow: /engine/
Disallow: /*?*

Host: site.ru

Внимание! Данный вид robots.txt применим для тех сайтов, где не используется модули MetaRobots, DonBot или модификации файла engine.php для управления мета-тегом robots.

Настраиваем скрипт :
Заполняем мета-данные сайта.
В Панели управления в настройках системы включаем функцию: Обрабатывать неверные URL ЧПУ
Для получения хорошего результата оптимизации, мета-данные на вкладке дополнительно при публикации и редактировании новостей, мета-данные категорий и статических страниц необходимо заполнять вручную, стараясь избегать их дублей и используя принципы seo.

Также не поленитесь вручную заполнять или редактировать на вкладке дополнительно поле: ЧПУ URL статьи, чем оно короче тем лучше(это адрес вашей страницы при включенном ЧПУ). Делайте его ёмким и коротким. Раньше использовали транслит, но теперь по определённым данным даже лучше использовать перевод, ПС его понимают и в выдаче подсвечивают. То что генерирует автоматически скрипт может иметь очень большую длину при длинном заголовке новости, поэтому не поленитесь сделайте красивый адрес новости. Не бойтесь редактировать url новостей, система обработки неверных url в dle привязана к ID новости и при изменении ЧПУ создаст 301 редирект на её новый адрес, так как ID вы не меняете.

Дополнительно обезопасим от случайного попадания в индекс админку:
Добавим мета-тег robots. Открыть файл /engine/skins/default.skin.php:
Найти:

Добавить ниже:

Закроем от индексации дубли - страницы печати:
добавив такой же мета-тег в шаблоны страниц печати: print.tpl и static_print.tpl

Найти:

Добавить ниже:

Указываем главное зеркало(с www или без и склеиваем), первых страниц навигации и несуществующий раздел - catalog , также являющийся дублем главной страницы сайта:

Открываем файл .htaccess в корне сайта:
Найти:
RewriteEngine On

a) Для главного зеркала БЕЗ www ниже добавить:
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*)$ http:\/\/%1/$1


b1) Для главного зеркала С www ниже добавить:
RewriteCond %{HTTP_HOST} ^site\.ru$
RewriteRule ^(.*)$ http://www.site.ru/$1
RewriteCond %{THE_REQUEST} ^{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ /
RewriteRule ^(.*)/page/1/$ $1/
RewriteRule ^(.*)page/1/$ $1/
где site.ru - замените на свой домен

b1) или для него же универсальный от противного ниже добавить:
RewriteCond %{HTTP_HOST} !^www\.(.*)
RewriteRule ^(.*)$ http://www.%1/$1
RewriteCond %{THE_REQUEST} ^{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ /
RewriteRule ^(.*)/page/1/$ $1/
RewriteRule ^(.*)page/1/$ $1/

И с дублем первой страницы дописываем решение взятое у Алаева:
Далее открываем файл /engine/engine.php (взято у Алаева ):
Найти:
if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ($category) or $category == ""))) {

Внимание ВЫШЕ добавить:
if (($config["allow_alt_url"] == "yes") && (intval($_GET["cstart"]) == 1) && (strpos($_SERVER["REQUEST_URI"], "/page/1") !== false)) {
$first_page_url = str_replace ("/page/1", "", $_SERVER["REQUEST_URI"]);
header("HTTP/1.0 301 Moved Permanently");
header("Location: $first_page_url");
die("Redirect");
}

Убирать дубль главной по адресу /index.php в 10-ой версии уже не нужно, разработчик добавил canonical для указания главной страницы.

Если у вас открыты для индексирования страницы пагинации, решим вопрос с с несуществующими страницами пагинации , например, сделали вы вывод не по 5 новостей, а по 10 на страницу или удалили часть новостей и общее число страниц пагинации изменилось в меньшую сторону:
Способ решения взят у Алаева(alaev.info)
Работаем с страницами сайта :
Открываем файл и в самом низу находим:
}
?>

ВЫШЕ добавляем:
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая
$all_pages_count = @ceil($count_all / $config["news_number"]);
if ($cstart > $all_pages_count) {
if ($all_pages_count > 1) {
header ("Location: " . $url_page . "/page/" . $all_pages_count . "/");
die();
} else {
header("HTTP/1.1 301 Moved Permanently");
header ("Location: " . $url_page . "/");
die();
}
}
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая

Работаем с страницами комментариев:
Открываем файл /engine/classes/comments.class.php и в самом низу находим:
}

ВЫШЕ добавляем:
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая
if ($this->cstart > $enpages_count) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $url);
die();
}
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая

Закрываем разделы со страницами дублирующими контент и служебные страницы посредством мета-тега robots:
Покупаем у Алаева выгружаем его файлы на сервер и настраиваем его, например так:
вставляем в ваш шаблон main.tpl после:
{headers}

вставить:

{include file="engine/modules/donbot.php?tag=follow&pages=newposts,lastnews,date,allnews,alltags,tags,xfsearch,catalog,pages"}
{include file="engine/modules/donbot.php?tag=nofollow&pages=addnews,feedback,lostpassword,register,rules,stats,search,pm,favorites,lastcomments,userinfo"}

вы можете выбрать другую настройку.

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

При такой настройке модуля или использовании способа приведённого ниже можно сократить файл robots.txt до:
User-agent: *
Disallow: /engine/
Disallow: /*?*
Sitemap: http://site.ru/sitemap.xml
Host: site.ru

Потому что файл robots.txt уже давно для Google носит рекомендательный характер, а мета-тег он выполняет.

Открываем файл /engine/engine.php

Найти:
else $disable_index = "";

Заменить на(приведённый ниже массив рекомендован мной и его состав, может быть подобран и изменён под свои цели*):
elseif (
$do == "alltags" OR /* Страница вывода списка всех тегов */





$do == "xfsearch" OR /* Вывод новостей новостей по доп. полям */

$dle_module == "date" OR /* Вывод архива новостей за год/месяц/день */
(intval($_GET["cstart"]) > 1) OR /* Любые страницы пагинации */
) $disable_index = "\n"; else $disable_index = "";

Заменяя, удаляя или добавляя строки в массиве из списка возможных вариантов приведённого ниже, настройте запрет индексации под свои цели.

$do == "addnews" OR /* Страница добавления новости с сайта */
$do == "alltags" OR /* Страница просмотра списка тегов */
$do == "feedback" OR /* Страница формы обратной связи */
$do == "favorites" OR /* Страницы закладок пользователей */
$do == "lastcomments" OR /* Вывод всех последних комментариев на сайте, в т.ч. комментариев отдельного пользователя */
$do == "lastnews" OR /* Вывод всех последних новостей сайта */
$do == "lostpassword" OR /* Страница восстановления пароля */
$do == "pm" OR /* Страницы личных сообщений пользователей */
$do == "register" OR /* Страница регистрации нового пользователя */
$do == "rules" OR /* Страница правил сайта */
$do == "stats" OR /* Страница статистики сайта */
$do == "search" OR /* Страница поиска и результатов поиска */
$do == "tags" OR /* Вывод новостей по тегу */
$do == "xfsearch" OR /* Вывод новостей по доп. полям */
$subaction == "allnews" OR /* Вывод всех новостей пользователя */
$subaction == "newposts" OR /* Вывод непрочитанных новостей для пользователя */
$subaction == "userinfo" OR /* Просмотр профиля пользователя */
$dle_module == "date" OR /* Вывод архива новостей за год/месяц/день. Заменяет собой сразу все три следующие строки */
($year != "" and $month == "" and $day == "") OR /* Вывод архива новостей за год */
($year != "" and $month != "" and $day == "") OR /* Вывод архива новостей за месяц */
($year != "" and $month != "" and $day != "" and $subaction == "") OR /* Вывод архива новостей за день */
(intval($_GET["cstart"]) > 1) OR /* Любые страницы пагинации. Заменяет собой сразу две следующие строки */
($dle_module == "main" and (intval($_GET["cstart"]) > 1)) OR /* Страницы пагинации для главной страницы */
($do == "cat" and $category != "" and $subaction == "" and (intval($_GET["cstart"]) > 1)) OR /* Страницы пагинации только для категорий */
($do == "cat" and $category != "" and $subaction == "") OR /* Вывод любой категории */
$do == "cat" and $category_id == "X" and $subaction == "") OR /* Вывод определенной категории. X заменить на id категории */
$catalog != "" /* Просмотр каталога по буквенному идентификатору */

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

Устанавливаем бесплатные модули :
Два модуля от Алаева:

LinkEnso - SEO модуль кольцевой внутренней перелинковки для движка DLE и вывода ненумерованного списка ссылок на страницах публикаций сайта.
Бесплатно версии вполне достаточно, от платной она отличается только наличием в последней излишеств, которые в плане оптимизации пользы не принесут а могут наоборот при неправильном использовании навредить. Данный модуль должен заминить вывод похожих новостей и организовать кольцевую переликовку. Устанавливается один раз и при обновлении скрипта переустановка не требуется.


Уникальный модуль для SEO оптимизации главной страницы и категорий сайта построенного на движке DLE (Datalife Engine). Устанавливается один раз и при обновлении скрипта переустановка не требуется.

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

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

Поэтому я рекомендую сделать следующее. Скрипт сам отдаёт ошибку 404, но этого как бы недостаточно для удаления страницы из сервисов ПС особенно когда на неё ещё где-то висят ссылки, поэтому добавим вывод мета-тега robots на страницы ошибок.

Открываем файл /engine/modules/show.full.php
Найти:

Добавить ниже:
$disable_index = 1;

Открываем файл /engine/modules/static.php
Найти:
@header("HTTP/1.0 404 Not Found");

Добавить ниже:
$disable_index = 1;

Открываем файл /engine/modules/show.short.php
Найти, Внимание! (3 раза):
msgbox($lang["all_err_1"], $lang["news_err_27"]);

И Внимание! ВЫШЕ добавить:

$disable_index = 1;


DataLife Engine (сокращённо DLE) с каждым новым релизом становится всё более оптимизированным под поисковые системы, но всё же узкие места остаются и для их устранения написано множество модулей и хаков (модификаций), которые помогают веб-мастеру не только оптимизировать, но и продвигать сайт построенный на DLE.

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

В первую очередь начнём с файла robots.txt

Правильный robots.txt для DLE

User-agent: *
Disallow: /2013/
Disallow: /tags/
Disallow: /user/
Disallow: /favorites/
Disallow: /lastnews/
Disallow: /newposts/
Disallow: /catalog/
Disallow: /*page/
Disallow: /*print
Disallow: /addnews.html
Disallow: /statistics.html
Disallow: /rules.html
Disallow: /dle-rules-page.html
Disallow: /engine/
Disallow: /*?*

Host: site.ru

Строка архива за год
Disallow: /2013/

может быть у вас не одна в зависимости сколько лет работает ваш сайт и иметь вид, например:

Disallow: /2012/
Disallow: /2011/
Disallow: /2010/

Еще часто задаётся вопрос, а как же дубли по url, например: /index.php?subaction=userinfo и /index.php?do=lostpassword
для этого, неверных адресов и служебных страниц добавлено:
Disallow: /*?*

От индексации страницы пагинации закрыты таким образом:
Disallow: /*page/
И не забудьте в строках Sitemap и Host заменить site.ru на ваш домен.
В Sitemap укажите url к карты сайта, его можно узнать в админке в разделе "Карта сайта для Google и Yandex".
В Host укажите ваш домен, учитывая его основное зеркало, т.е. с www или без него, для этого и служит значение Host , и вводится только домен основного зеркала, а не полный url сайта.
Кроме того, так как Host понимают не все роботы, рекомендуется его добавлять в конце файла robots.txt.

Внимание! Данный вид robots.txt применим для тех сайтов, где не используется модуль DonBot или модификации файла engine.php для управления мета-тегом robots.

В Панели управления в настройках системы включаем функцию: Обрабатывать неверные URL ЧПУ

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

Модули для внутренней оптимизации DLE:


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

Функционал модуля добавляет атрибут nofollow к внешним ссылкам в новостях и комментариях, но с возможностью исключений - дружественных url, индексация которых не будет запрещена. Их можно настраивать из Панели управления модуля.


Модуль dude Smart Leech позволяет скрывать внешние ссылки обрабатывая их согласно созданным в настройках модуля правилам.
В функционале модуля: url rewrite и img url rewrite(url=site.ru/go?a%3AaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8%2FMjMwMDM1Nw%3D%3D), поддержка черного и белого списков, страница редиректа, тег noindex и атрибут nofollow.


Модуль Карта сайта YaSiteMap - это HTML карта сайта.
HTML карта сайта нужна для быстрой индексации поисковыми системами и удобства поиска публикаций посетителями вашего сайта. Кроме того модуль позволяет улучшить для страниц сайта такой показатель как вложенность. В данном модуле реализованы постраничный вывод ссылок на статьи и кэширование.


Модуль DonBot позволяет управлять индексацией страниц сайта на DLE при помощи мета-тега robots. Это более гибкая альтернатива использованию robots.txt. Для установки не требуется правки файлов движка.
При использовании данного модуля файл robots.txt можно сократить до вида:

User-agent: *
Disallow: /*print
Disallow: /engine/
Disallow: /*?*
Sitemap: http://site.ru/sitemap.xml
Host: site.ru


Модуль TagFace предназначен для SEO-оптимизации страниц тегов DLE. Он выводит текстовое описание и заголовок H1 на страницах просмотра новостей с определенным тегом. Для установки не требуется правки файлов движка.


LinkEnso - SEO модуль кольцевой внутренней перелинковки для движка DLE и вывода ненумерованного списка ссылок на страницах публикаций сайта.

Уникальный модуль для SEO оптимизации главной страницы и категорий сайта построенного на движке DLE (Datalife Engine).

Закрываем индексирование админки

Открыть файл /engine/skins/default.skin.php :
Найти:

Добавить ниже:

Указываем главное зеркало(с www или без и склеиваем), убираем дубли главных страниц сайта типа: index.php, index.html, первых страниц навигации и несуществующий раздел - catalog, также являющийся дублем главной страницы сайта
Я использую главное зеркало без www, это проще...

Открываем файл .htaccess в корне сайта:
Найти:
RewriteEngine On

a) Для главного зеркала БЕЗ www ниже добавить:
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*)$ http:\/\/%1/$1






b1) Для главного зеркала С www ниже добавить:
RewriteCond %{HTTP_HOST} ^site\.ru$
RewriteRule ^(.*)$ http://www.site.ru/$1
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ /
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ /
RewriteCond %{THE_REQUEST} ^{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ /
RewriteRule ^(.*)/page/1/$ $1/
RewriteRule ^(.*)page/1/$ $1/
где site.ru - замените на свой домен

b1) или для него же универсальный от противного ниже добавить:
RewriteCond %{HTTP_HOST} !^www\.(.*)
RewriteRule ^(.*)$ http://www.%1/$1
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ /
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ /
RewriteCond %{THE_REQUEST} ^{3,9}\ /catalog/\ HTTP/
RewriteRule ^catalog/$ /
RewriteRule ^(.*)/page/1/$ $1/
RewriteRule ^(.*)page/1/$ $1/

Внимание ВЫШЕ добавить:
if (($config["allow_alt_url"] == "yes") && (intval($_GET["cstart"]) == 1) && (strpos($_SERVER["REQUEST_URI"], "/page/1") !== false)) {
$first_page_url = str_replace ("/page/1", "", $_SERVER["REQUEST_URI"]);
header("Location: $first_page_url");
die("Redirect");
}

Редирект с несуществующих страниц пагинации на правильные и существующие
Актуальность : Проверено на 7.x, 8.x, 9.x (включая 9.5, 9.6, 9.7, 9.8).
Возьмем вполне реальную ситуацию – по какой-то причине вы решили изменить количество новостей, выводимых на главной странице или страницах категорий, в результате в панели вебмастера появится много страниц с 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 ("Location: " . $url_page . "/page/" . $all_pages_count . "/");
die();
} else {
header("HTTP/1.1 301 Moved Permanently");
header ("Location: " . $url_page . "/");
die();
}
}
//редирект на последнюю страницу, если в url указана страница больше чем максимально существующая

Редирект с несуществующих страниц пагинации комментариев на правильные
Актуальность : Проверено на 7.x, 8.x, 9.x (на 9.5, 9.6, 9.7, 9.8).
Аналогичная ситуация с пагинацией в комментариях. Может возникнуть такая ситуация, что, например, вам наспамили в комментариях, поисковики проиндексировали все страницы комментариев, а потом вы это заметили и удалили все комменты. Но страницы, которые проиндексировал поисковик, все равно останутся, просто на них не будут отображаться никакие комментарии, а будет полный дубль основной страницы новости. И это печально, надо исправлять!

Открываем файл /engine/classes/comments.class.php и в самом низу находим:
}

ВЫШЕ добавляем:
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая
if ($this->cstart > $enpages_count) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $url);
die();
}
//редирект на последнюю страницу комментариев, если в url указана страница больше чем максимально существующая

Добавляем бренд в title
Берётся из краткого названия сайта в настройках скрипта. И выводится в виде - Бренд: заголовок

Найти:
if ($metatags["header_title"]) $metatags["title"] = stripslashes($metatags["header_title"].$page_extra);

Заменить на:
if ($metatags["header_title"]) $metatags["title"] = $config["short_title"] . ": ". stripslashes($metatags["header_title"] . $page_extra);

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

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

Открываем файл /engine/engine.php и находим:
if (!$category_id) $category_id = "not detected";

ЗАМЕНЯЕМ на:
//решение проблемы с категориями, которых не существует
if ($config["allow_alt_url"] == "yes" AND ! $category_id AND $view_template != "rss") {
header("HTTP/1.0 301 Moved Permanently");
die("Redirect");
}
//решение проблемы с категориями, которых не существует

Редирект для удаленных или несуществующих новостей на главную
Актуальность : Провернено на 7.x, 8.x, 9.x (включая 9.5, 9.6, 9.7, 9.8).
Стандартная ситуация и может встретиться на любом сайте. Вы удалили какую-то новость и, понятное дело, будет выдаваться 404 ошибка. Если вас это не устраивает, а именно то, что выдается 404 ошибка, то можно сделать, например, 301-редирект на главную страницу сайта.

Открываем файл /engine/modules/show.full.php и находим:
elseif(! $news_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 редирект на главную, если новость не найдена/не существует

Редирект для удаленных или несуществующих статических страниц на главную
Актуальность : Провернено на 7.x, 8.x, 9.x (включая 9.5, 9.6, 9.7, 9.8).
Тоже стандартная ситуация и может встретиться на любом сайте. Вы удалили какую-то статических страницу и, понятное дело, будет выдаваться 404 ошибка. Если вас это не устраивает, а именно то, что выдается 404 ошибка, то можно сделать, например, 301-редирект на главную страницу сайта.

Открываем файл /engine/modules/static.php и находим:
else {

@header("HTTP/1.0 404 Not Found");
msgbox($lang["all_err_1"], $lang["news_page_err"]);

ЗАМЕНЯЕМ на:
// 301 редирект на главную, если статическая страница не найдена/не существует
elseif(! $news_found) {
header ("HTTP/1.0 301 Moved Permanently");
header ("Location: {$config["http_home_url"]}");
die ("Redirect");
}
// 301 редирект на главную, если статическая страница не найдена/не существует

Список модулей и хаков будет обновляться по мере появления новых.

При использовании бесплатных шаблонов WordPress в футере сайта появляется текст «Сайт работает на WordPress». В англоязычной теме эта надпись обычно выглядит как «Proudly powered by WordPress». Зачастую там же располагаются ссылки с рекламой разработчиков шаблона. Все это обычно не вписывается в стиль сайта и занимает место, которое вы можете применить с пользой, поэтому такую надпись лучше удалить.

Ссылка "Сайт работает на WordPress" в футере

Надпись «Сайт работает на WordPress» выводится в футере, поэтому потребуется найти исходный блок с кодом, который ее генерирует. Код подвала сайта содержится в файле footer.php. Его можно открыть, используя встроенный редактор WordPress.

  1. В админке WordPress зайдите в меню «Внешний вид».
  2. Выберите пункт «Редактор».
  3. В панели «Шаблоны», которая расположена справа, найдите шаблон подвала и щелкните по нему мышью. Содержимое файла footer.php загрузится в редактор кода в центральном окне админ-панели.
  4. Найдите в коде футера тег div с классом site-info. Код, который размещен между

    и закрывающим тегом

  5. Чтобы ее убрать, просто удалите этот блок из кода и нажмите кнопку «Обновить файл».

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


/* закоментированный php код */

Виртуальный хостинг сайтов для популярных CMS:

Если в футере нет ссылки "Proudly powered by WordPress"

Имейте в виду, что код с текстом «Сайт работает на WordPress» может выводиться из языкового файла в шаблоне или другого служебного файла установленной темы. Если не получается обнаружить нужный код в футере, необходимо искать его среди файлов темы.

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

Для решения этой задачи можно воспользоваться одним из приведенных способов.

Способ 1: удалить ссылку в футере страницы

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

  1. В админ-панели WordPress зайдите в меню «Внешний вид»
  2. Выберите пункт «Редактор».
  3. В правой панели «Шаблоны» найдите таблицу стилей style.css.
  4. Щелкните по этому файлу, чтобы загрузить его во встроенный редактор.
  5. Прокрутите открывшийся код до конца файла и допишите туда строчку: .site-info { display: none; }
  6. Подтвердите изменения нажатием кнопки «Обновить файл». Откройте сайт в браузере и убедитесь, что ненужный текст больше не отображается.

Способ 2: Поиск ссылки в файлах темы

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

С помощью файлового менеджера подключитесь к удаленному серверу, используя учетные данные, которые выданы вам хостинг-провайдером при регистрации. В папке сайта найдите подпапку wp-content, откройте и зайдите в директорию с установленными шаблонами themes. Дальше необходимо выбрать папку с нужной вам темой (в нашем случае это twentyseventeen).

  1. Откройте каталог template-parts в папку footer (1).
  2. В папке footer найдите файл site-info.php. Полный путь выглядит как: wp-content/themes/название-темы/template-parts/footer/site-info.php
  3. Необходимо открыть файл site-info.php в режиме правки кода.
  4. Он содержит активную ссылку, которую нужно удалить. Сохраните измененный файл на сервере и убедитесь, что надпись на сайте исчезла.

Добавление своей надписи

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

Copyright 2015- Все права защищены. Копирование контента без обратной ссылки запрещено!

Если вы удалили ссылку из футера прямо из админки WordPress, вставьте эту информацию вместо удаленного кода. Если в футере не было ссылки и вы удалили ее из файла site-info.php, тогда нужный текст следует дописать именно в этот файл вместо удаленной строки. В подвале страницы появится знак копирайта, годы работы проекта и запрет на копирование контента.



Загрузка...