Иконка ресурса

Короткая ссылка на новости (site.ru/{id}) 13+

Нет прав для скачивания
Обновление: Добавлена поддержка DLE 14, 14.1
Легкий и быстрый плагин для изменения ссылок по всему сайту.
Для работы решения должен быть установлен тип SEO-ссылок: 1 или 2
Превращает по всему сайту ссылки: site.ru/{cat}/text-{id} в site.ru/{id}
Способ установки:

1. Загрузить и установить плагин в админке (/admin.php?mod=plugins)
2. Прописать правила:
- Для apache2 (httpd) [файл .htaccess] (желательно выше всех правил):

Код:
RewriteRule ^([0-9]+)(/?)+$ index.php?newsid=$1 [L]

- Для nginx [conf-файл из /etc/nginx.conf]:
Код:
rewrite ^/([0-9]+)(/?)+$ /index.php?newsid=$1 last;
P.S.
Если вы хотите ссылку site.ru/123.html, тогда открываем плагин и

Код:
$newsPattern = "$1";
$newsCommentsPattern = "$3";

заменяем на

Код:
$newsPattern = "$1.html";
$newsCommentsPattern = "$3.html";
и переделываем правила apache2 или nginx
А так же (если вам нужна переадресация со старых адресов на новый, то должно в .htaccess работать такое):

Тип ЧПУ 1:
Код:
RewriteRule ^([0-9]+)-(.*).html$ /$1 [R=301,L]

Тип ЧПУ 2:
Код:
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ /$2 [R=301,L]

* можно добавить оба - будет работать.

* не меняются ссылки в BlockPro? есть решение:
engine/modules/base/core/base.php
все что с :
Код:
 $url = ...

меняем на:
Код:
$url = $this->dle_config['http_home_url'] . $data['id'];


В двух местах найти
Код:
$str = preg_replace( '#https?://.*?page,([0-9]+),([0-9]+),([0-9]+)-.*\.html#i', '/' . $newsCommentsPattern . '/?news_page=$1&cstart=$2', $str );

$str = preg_replace( '#https?:\/\/.*\/([0-9]+)-.+\.html#i', '/' . $newsPattern, $str );
и заменить:
Код:
$str = preg_replace( '#https?://.*?page,([0-9]+),([0-9]+),([0-9]+)-(.*)\.html#i', '/' . $newsCommentsPattern . '/?news_page=$1&cstart=$2&seourl=$4', $str );

      $str = preg_replace( '#https?://.*/(.*)/([0-9]+)-.+\.html#i', '/' . $newsPattern, $str );

Использовать паттерн:
Код:
$newsPattern = "$1/$2.html";
      $newsCommentsPattern = "$3/$4.html";

APACHE2:
Код:
RewriteRule ^([^.]+)/([0-9]+)(/?)+$ index.php?seocat=$1&newsid=$2 [L]
Переадресация со старых на новые
Код:
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ /$1/$2 [R=301,L]
NGINX:
Код:
nginx rewrite ^/([^.]+)/([0-9]+)(/?)+$ /index.php?seocat=$1&newsid=$2 last;

ВНИМАНИЕ!
Что бы не сломать системные пути, делаем так для NGINX:
Удаляем это:
Код:
 rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last;
    rewrite "^/([^.]+)(/?)+$" /index.php?do=cat&category=$1 last
В самый низ над всеми правилами вставляем это:
Код:
 rewrite ^/([^.]+)/([0-9]+)(/?)+$ /index.php?seocat=$1&newsid=$2 last;
    rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last;
    rewrite "^/([^.]+)(/?)+$" /index.php?do=cat&category=$1 last;
APACHE:
СТРОГО над этим:
Код:
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
вставляем это:

Код:
RewriteRule ^([^.]+)/([0-9]+)(/?)+$ index.php?seocat=$1&newsid=$2 [L]
Автор
DlePlugins
Скачивания
0
Просмотры
45
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя DlePlugins

Поделиться ресурсом

Сверху