Neo79

Neo79
Рейтинг
135
Регистрация
17.08.2007
rammlied:
В настройках системы есть 3 типа ЧПУ,
site/id-name.html
site/cat/cat/cat/id-name.html
site/date/date/date/name.html

а возможно ли как то сделать так?

site/cat/cat/cat/name
то есть как второй вариант но без хтмл и ИД

Как убрать ID публикации из URL новости:


1. Открываем файл /engine/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, fixed, 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, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where id = '$newsid'";

if ($subaction == '') $subaction = "showfull";
}
}


заменяем на:
// ################ Новость целиком #################
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, fixed, 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, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where alt_name = '{$_GET['newsid']}'";

if ($subaction == '') $subaction = "showfull";
}
}



2. В файлах /engine/modules/show.short.php, show.custom.php, topnews.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'];

}


3. Открываем файл .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 ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_name=$4 [L]

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

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


4. Что бы со старых типов ссылок шло перенаправление на ссылки нового вида необходимо открыть файл /engine/modules/show.full.php, найти код:
@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}



и заменить на:
preg_match("/([0-9]*)-(.+?).html$/i", $_SERVER["REQUEST_URI"], $res);
if(intval($res[1]) > 0){
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$config['home_url'].$res['2'].'.html');
exit;
}



найти:
$news_found = TRUE;

ниже добавить:
if($config['allow_alt_url'] == "yes"){

preg_match( '/'.$row['id'].'-(.*?).html/is' , $_SERVER["REQUEST_URI"] , $parse_alt_name );

if($row['alt_name'] != trim($parse_alt_name[1]) )$news_found = FALSE; if( !$news_found ) break;

}

Unknown_AT, благодарю за размещение и обмен

так же хочется узнать ответ - куда

shumvit, как с переоформлением ?

потерто ......

Drughi, как я в теме, сайт аккуратный, качественный, но старт высокий. В ЯК на платно пробовали ? Кто регистратор домена?

все еще ищется новый владелец

все еще косяк не исправили..неделю все мучаются

den78ru:


Господа, работает та ссылка, по которой люди кликают.
Вот и все откровения.

Она просто больше ценится если по ней кликают, но не просто кликают, но и еще учитывается сколько провел времени на сайте..но и не кликающие (которых 99%) учитываются просто без бонусов

Neo79 добавил 22.10.2011 в 15:59

Joober:



а если проект крупный, ссылок требуется больше, что увеличиваете в первую очередь: ВС или цену?

ps Это я к тому, что в системе, на мой взгляд, имеется довольно большое количество старых качественных площадок, которые не накачены копипастными новостями, тегами и т.п. Страниц у них штук по 500 и соответственно они продают по 2-3 ссылки со страницы, чтобы нормально зарабатывать. По-вашему есть смысл, при детальном ручном отборе, закупаться на них?

лучше цену увеличить, т.к. чем больше ВС тем меньше веса передаст единица. тем более учитывая их плотность - в одном блоке...если бы в новости, через 1000 символов можно и 2 ВС

Такой вопрос. CMS DLE выбираю кол-во новостей 3, яндекс новости. Выводит 3 первые по дате, а нужно как то выбирать...например 1-ю, 3-ю и 4-ю

как то можно выбирать какие новости выдавать rss а какие нет ?

заранее благодарю за помощь

Всего: 3065