Редактор темы

Реклама
Реклама

Делаем ссылку на полную новость как на кинопоиске [хак]

DLEPlugins

Кодер
Регистрация
29 Ноя 2015
Сообщения
1.601
Рейтинг реакций
968
Баллы
113
1/3
Автор темы
Еще один извечный вопрос, который периодически всплывает на поверхность словно плавающий кусок .... О чем это я? Ах да, делюсь способом убрать из ссылки все кроме категории и id. Вот что вы получите в итоге - было
сайт.ру/main/1-post1.html
станет

1. Открываем все перечисленные ниже файлы
\engine\ajax\adminfunction.php,\engine\ajax\comments.php,\engine\ajax\editcomments.php,\engine\ajax\search.php,\engine\classes\google.class.php,\engine\inc\cmoderation.php,\engine\inc\editnews.php,\engine\modules\addcomments.php,\engine\modules\show.custom.php,\engine\modules\show.full.php,\engine\modules\show.short.php и \engine\modules\topnews.php
ищем во всех этих файлах код
PHP:
$row['id'] . "-" . $row['alt_name'] . ".html";
заменить на код
PHP:
$row['id'] . "/";
2. Далее открываем следующие файлы \engine\classes\comments.class.php,\engine\inc\cmoderation.php,\engine\inc\comments.php и \engine\inc\complaint.php
найти в них весь стречающийся код код
PHP:
$row['post_id'] . "-" . $row['alt_name'] . ".html";
заменить на
PHP:
$row['post_id'] . "/";
3. ( напомнил @Rockem ) Открываем два файла - \engine\ajax\find_relates.php и \engine\modules\show.full.php и ищем весь повторяющийся код в них
PHP:
$related['id'] . "-" . $related['alt_name'] . ".html";
меняем на код
PHP:
$related['id'] . "/";
4. Наконец открываем файл .htaccess
ищем код
PHP:
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)-(.*).html$ index.php?newsid=$1&seourl=$2 [L]
меняем на
PHP:
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)/$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)/$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)/$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)/$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)/$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)/$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)/$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)/$ index.php?newsid=$1&seourl=$2 [L]

Под конец очистить кеш в админке

для тех кто использует модуль HTML SiteMap от Alaev
Открываем /engine/modules/sitemap.php
ищем в нем участок кода
PHP:
if(intval($post['category']) && $this->dle_api->dle_config['seo_type'] == 2)
                    {
                        $url = $this->dle_api->dle_config['http_home_url'].get_url(intval($post['category'])).'/'.$post['id'].'-'.$post['alt_name'].'.html';
                    }
                    else
                    {
                        $url = $this->dle_api->dle_config['http_home_url'].$post['id'].'-'.$post['alt_name'].'.html';
                    }
Заменяем на код
PHP:
if(intval($post['category']) && $this->dle_api->dle_config['seo_type'] == 2)
                    {
                        $url = $this->dle_api->dle_config['http_home_url'].get_url(intval($post['category'])).'/'.$post['id'].'/';
                    }
                    else
                    {
                        $url = $this->dle_api->dle_config['http_home_url'].$post['id'].'/';
                    }
 
Последнее редактирование модератором:
@DomiTori, забыл вот эту строчку:

Код:
$rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'] . ".html";
 
Автор темы
Хм, а для чего это надо? Какой-то неинформационный урл получается, кастрированный быстрей. В урле можно зашить ключевики, а здесь получается огрызок! 😵
 
да, кастрация ненужная, в урл должен быть ключ, так как подсветка есть и бла бла бла, это факт
 
Ничто не мешает поменять на сайт.ру/категория/IDновости/заголовокНовости

1 замена
PHP:
$row['id'] . "/". $row['alt_name'];
2 замена
PHP:
$row['post_id'] . "/". $row['alt_name'];
3 замена
PHP:
$related['id'] . "/". $related['alt_name'];

.htaccess
PHP:
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)/(.*)$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)/(.*)$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)/(.*)$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)/(.*)$ index.php?newsid=$1&seourl=$2 [L]
 
@DomiTori, спасибо, не пришлось искать все эти файлы самому.
Кстати, а почему низзя ID из урла убрать к хренам?
 
Последнее редактирование:
действительно - почему ?
нельзя сделать чтобы ИД был но был не виден в урл?
и чтобы обрезался до скольки то слов
 
Чтобы наверняка не было дублей страниц. Например фильмы бывают с одинаковыми названиями и если к примеру ты не добавляешь год в урл, то будет дубль. Раньше помнится для некоторых CMS хаки делали, чтобы добавить к урлу аналог ID
 
эмм...я тут немного не поспал.. ДЛЕ че, не может в уникальность урлов самостоятельно?
 
Чтобы наверняка не было дублей страниц. Например фильмы бывают с одинаковыми названиями и если к примеру ты не добавляешь год в урл, то будет дубль. Раньше помнится для некоторых CMS хаки делали, чтобы добавить к урлу аналог ID
это все понятно, но ИД то будет )) я хз можт и чепуху несу конечно, но типа он есть ИД, а в урл его нету ))
вообще номер новостей требует помоему только рамблер новости если туда подключаться, ДЛЕ изначально система под новостные сайты, наверное из за этого и сделан вывод нумерации
 
это все понятно, но ИД то будет )) я хз можт и чепуху несу конечно, но типа он есть ИД, а в урл его нету ))
вообще номер новостей требует помоему только рамблер новости если туда подключаться, ДЛЕ изначально система под новостные сайты, наверное из за этого и сделан вывод нумерации
Не возможно скрыть id с чпу. Никак. Никогда. Разве что если будет dle сделан на MVC.
 
ну гуд, нет так нет, тебе то уж верить можно ибо програмер )
Вру, можно. Но это по ебинастическому будет.
Делаем ссылку как <form> и передаем id новости через POST. В общем это возможно. Только как пс будут переходить по ссылкам - не ебу. Ибо это будет форма и прямой ссылки не будет.
 
Перестала работать пагинация в категориях.
.htaccess
PHP:
### не работает пагинация, работают ссылки на страницы новостей
RewriteRule ^([^.]+)/([0-9]+)/(.*)$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

### работает пагинация, не работают ссылки на страницы новостей
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

Вроде как надо вывод пагинации править где-то в районе show.short.php...
 
Последнее редактирование:
Автор темы
Перестала работать пагинация в категориях.
.htaccess
PHP:
### не работает пагинация, работают ссылки на страницы новостей
RewriteRule ^([^.]+)/([0-9]+)/(.*)$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

### работает пагинация, не работают ссылки на страницы новостей
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

Вроде как надо вывод пагинации править где-то в районе show.short.php...
Я проверю. У меня все работало, перепроверю сам себя
 
Насколько я понял, ссылка, формируемая в show.short.php (next-link) , должна совпадать с той, что указана в .htaccess.

Или за пагинацию в категориях другой файл отвечает?
 
Последнее редактирование:

Похожие темы Последние темы Популярные темы

Назад
Сверху