Снова о ЧПУ в DLE

12
T
На сайте с 13.01.2009
Offline
50
#11

поиском пользуйся , несколько человек спрашивали

Константинович
На сайте с 13.09.2008
Offline
319
#12
muratti:
Может, кто скажет, как создавать новости с ЧПУ, но без id номера? site.ru/nazvanie-novosti.html

для кого топик создан? В нём уже ответили.

Смотри тут, анализируй и изменяй как тебе нужно: /ru/forum/comment/5201232

Нужны финансы? Быстрая скупка (http://dragmettorg.com/skupka_zolota/). Цены на сайте. А потом отыграй из на казино онлайн правила (http://premium-games.ru/)
SR
На сайте с 14.11.2008
Offline
104
#13

Палю для Всех как убрать id новости в ссылке новости 🚬

Версия DLE - 8.0

Работает и на старых версиях просто редактируйте под старые.

Открыть engine.php.

Найти:


// ################ Новость целиком #################
if ($subaction != '' or $newsid) {
if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1";
else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post where id = '$newsid'";

Заменить на:


// ################ Новость целиком #################
if ($subaction != '' or $_GET['newsid']) {
if (! $_GET['newsid']) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1";
else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where alt_name = '{$_GET['newsid']}'";

Открыть modules/show.short.php

Найти:


if( $row['category'] and $config['seo_type'] == 2 ) {

$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";

} else {

$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";

}

} else {

$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
}

} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];

}

Заменить на:


if( $row['category'] and $config['seo_type'] == 2 ) {

$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['alt_name'] . ".html";

} else {

$full_link = $config['http_home_url'] . $row['alt_name'] . ".html";

}

} else {

$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
}

} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['alt_name'];

}

Открыть .htaccess.

Найти:

RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L]

Заменить на:

RewriteRule ^([^.]+)/(.*).html(/?)+$ index.php?newsid=$2 [L]

Найти:

RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L]

Заменить на:

RewriteRule ^(.*).html(/?)+$ index.php?newsid=$1 [L]

Найти:

RewriteRule ^addnews.html$ index.php?do=addnews [L]

И переместить это вверх после:

RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]
Даже самый долгий путь начинается с первого шага. Не бойся начать.
S
На сайте с 04.08.2009
Offline
0
#14

А как сделать ссылки без .html в конце ссылки. (это относительно поста выше, новость без id, с id работает без .html в любом с лучае)

Заменяю в show.short.php все ".html" на знак "/" соответсвенно все сылки генерируются так: site.ru/category/nazvanie-novosty/

в .htaccess

RewriteRule ^([^.]+)/(.*)/+$ index.php?newsid=$2 [L]

Вроде все впорядке с категориями, но перестают работать подкатегории с слешем в конце.

Т.е. ссылка типа:

site.ru/category/subcategory/ не работает

site.ru/category/subcategory работает без слеша "/"

S
На сайте с 04.08.2009
Offline
0
#15

Предыдущий пост относится к DLE 7.5, а вот на DLE 8.2 вообще не работает после редактирования engine.php

Константинович
На сайте с 13.09.2008
Offline
319
#16

/ru/forum/comment/5201232

блин, сделал всё, как тут написано, теперь откуда-то в яндексе повылазило куча ошибок :(

Типа таких:

/2009/05/page/2/\

/articles/49/\

B
На сайте с 29.09.2009
Offline
0
#17

Ребят, подскажите, пожалуйста!

Поставил себе модуль меню навигации вот отсюда.

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

Можно ли это реализовать посредством ЧПУ или надо копаться в коде модуля?

Помогите, пожалуйста, ибо я ни в том, ни другом не силён.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий