X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Убираем ID публикации из URL новости в DLE 9.2, Помогите за вознаграждение решить проблемку с хаком
Fucktor
Fucktor
Topic Starter сообщение 18.4.2011, 12:28; Ответить: Fucktor
Сообщение #1


Как убрать 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;

}


Провёл выше указанные операции, ссылки стали без ID, но возникла проблема в DLE 9.2 полная новость не отображается sad.gif Помогите пожалуйста решить сию проблему.

Вот сайт где возникла проблема http://www.rapcorp.net/ при переходе на полную новость страница без новости sad.gif

// ################ Новость целиком #################  
            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";
            }
        }


Вот что-то тут походу изменить нужно.

Не актуально

Сообщение отредактировал Fucktor - 18.4.2011, 10:43
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
azos
azos
сообщение 18.11.2011, 22:45; Ответить: azos
Сообщение #2


таже проблема с 9.3

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужны блоги livejournal и liveinternet для публикации постов азартной тематики
0 FeNNomen 2361 26.1.2024, 20:07
автор: FeNNomen
Открытая тема (нет новых ответов) DLE xProtect
2 xoopw 5989 15.1.2024, 21:06
автор: Diana_Wesley
Открытая тема (нет новых ответов) Обновить сайт на CMS DLE
1 Sawich 1671 2.9.2023, 10:10
автор: WoWeb
Открытая тема (нет новых ответов) Изготовление красивых сайтов на DLE под ключ | Доступные цены
от 2000 руб.
1 Admiral_ukr 1603 20.11.2022, 10:08
автор: Webmaster24
Открытая тема (нет новых ответов) Ищу спеца по DLE вылечить сайт
4 Reactive 2645 22.10.2022, 9:01
автор: Fozik77


 



RSS Текстовая версия Сейчас: 26.4.2024, 6:39
Дизайн