Código:
saludos y muchas gracias de antemano 1. Go to the directory which contains the file showing your news (let's call this file news.php). If you already have a .htaccess file in this directory - delete it. Make sure this directory is writable as the hack will automatically create a new .htaccess file. 2. Open news.php (file which shows your news) and find your include code: For example: ############################# $category = 2; $number = 10; $template = "Headlines"; include("cute/show_news.php"); ############################# 3. Put this ABOVE your include code: (You may change $path_to_data to point to your cutenews/data folder.) ############################# //Mod_rewrite start ob_start(); $path_to_data = "./data"; $url = $_GET['url']; $test = find_archive(title_to_id($url)); $id = title_to_id($url); $ucat = title_to_ucat($url); //Mod_rewrite end ############################# 4. Put this BELOW your include code: (You may change this line in the function below: $letter_replacements = array('ö' => 'oe', 'ä' => 'ae'); to convert certain characters of your language.) ############################# //Mod_rewrite start function replace_title($title){ $letter_replacements = array('ö' => 'oe', 'ä' => 'ae'); $result = strtolower(strip_tags(html_entity_decode($title))); $result = strtr($result, $letter_replacements); $result = preg_replace('/\W/', "-", strip_tags($result)); return $result; } function title_to_id($title){ global $path_to_data; if($handle = opendir($path_to_data."/archives")) while (false !== ($file = readdir($handle))){ if($file != "." and $file != ".." and eregi("news", $file)){ $files_arch[] = $path_to_data."/archives/$file"; } } $files_arch[] = $path_to_data."/news.txt"; foreach($files_arch as $file){ $all_news = file($file); foreach($all_news as $news_line){ $news_arr = explode("|", $news_line); if(replace_title($news_arr[2]) == $title){ return $news_arr[0]; } } } } function title_to_ucat($title){ global $path_to_data; $all_news = file($path_to_data."/news.txt"); foreach($all_news as $news_line){ $news_arr = explode("|", $news_line); if(replace_title($news_arr[2]) == $title){ return $news_arr[6]; } } } function find_archive($id){ global $path_to_data; if($handle = opendir($path_to_data."/archives")) while (false !== ($file = readdir($handle))){ if($file != "." and $file != ".." and eregi("news", $file)){ $files_arch[] = $path_to_data."/archives/$file"; } } $files_arch[] = $path_to_data."/news.txt"; foreach($files_arch as $file){ $all_news_db = file("$file"); foreach($all_news_db as $news_line){ $news_arr = explode("|", $news_line); if($news_arr[0] == $id){ if(ereg("([[:digit:]]{0,})\.news\.arch", $file, $regs)){ $archive = $regs[1]; } return $archive; } } } } function id_to_title($id, $archiv = false, $type, $page = ''){ global $path_to_data; if($archiv){ $all_news = file($path_to_data."/archives/".$archiv.".news.arch"); } else{ $all_news = file($path_to_data."/news.txt"); } foreach($all_news as $news_line){ $news_arr = explode("|", $news_line); if($news_arr[0] == $id){ $title = replace_title($news_arr[2]); if($type == "commentspage"){ return "commentspage/".$page."/".$title.".html"; } else return $type."/".$title.".html"; } } } $show_news = ob_get_contents(); ob_get_clean(); $script_file = end($script_url = explode("/", $HTTP_SERVER_VARS['SCRIPT_NAME'])); $path = substr($HTTP_SERVER_VARS['SCRIPT_NAME'], 0, -strlen($script_file)); $find = array( /*post*/ "#".$script_file."\?subaction=showfull&id=(.*?)&archive=&start_from=&ucat=(.*?)&#ie", /*postcomments*/ "#".$script_file."\?subaction=showcomments&id=(.*?)&archive=&start_from=&ucat=(.*?)&#ie", /*postpage*/ "#".$script_file."\?start_from=(.*?)&ucat=&archive=&subaction=&id=(.*?)&#i", /*archiveindex*/ "#".$script_file."\?archive=(.*?)&subaction=list-archive#i", /*archive*/ "#".$script_file."\?subaction=showfull&id=(.*?)&archive=(.*?)&start_from=&ucat=(.*?)&#ie", /*archivepage*/ "#".$script_file."\?start_from=(.*?)&ucat=&archive=(.*?)&subaction=list-archive&id=&#i", /*archivecomments*/ "#".$script_file."\?subaction=showcomments&id=(.*?)&archive=(.*?)&start_from=&ucat=(.*)&#ie", /*searchnews*/ "#".$script_file."\?misc=search&subaction=showfull&id=(.*?)&archive=&cnshow=news&ucat=(.*?)&start_from=&#ie", /*searcharchives*/ "#".$script_file."\?misc=search&subaction=showfull&id=(.*?)&archive=(.*?)&cnshow=news&ucat=(.*?)&start_from=&#ie", /*ncommentspage*/ "#".$script_file."\?comm_start_from=(.*?)&archive=&subaction=showcomments&id=(.*?)&ucat=(.*?)&#ie", /*acommentspage*/ "#".$script_file."\?comm_start_from=(.*?)&archive=(.*?)&subaction=showcomments&id=(.*?)&ucat=(.*?)&#ie", ); $replace = array( "id_to_title('\\1', false, 'post')", "id_to_title('\\1', false, 'comments')", "postpage/\\1.html", "archiveindex/\\1.html", "id_to_title('\\1', '\\2', 'archive')", "archivepage/\\2/\\1.html", "id_to_title('\\1', '\\2', 'comments')", "id_to_title('\\1', false, 'post')", "id_to_title('\\1', '\\2', 'archive')", "id_to_title('\\2', false, 'commentspage', '\\1')", "id_to_title('\\3', '\\2', 'commentspage', '\\1')", ); $show_news = preg_replace($find, $replace, $show_news); $show_news = str_replace("&url=".$url, '', $show_news); if(!file_exists('.htaccess')){ $htaccess = "RewriteEngine On\n"; $htaccess .= "RewriteBase ".$path."\n\n"; $htaccess .= "RewriteRule ^post/(.*).html(.*)$ ".$script_file."?subaction=showfull&url=$1$2 [L,NC]\n"; $htaccess .= "RewriteRule ^postpage/(.*).html(.*)$ ".$script_file."?start_from=$1$2 [L,NC]\n\n"; $htaccess .= "RewriteRule ^comments/(.*).html(.*)$ ".$script_file."?subaction=showcomments&url=$1$2 [L,NC]\n"; $htaccess .= "RewriteRule ^commentspage/(.*)/(.*).html(.*)$ ".$script_file."?comm_start_from=$1&subaction=showcomments&url=$2$3 [L,NC]\n\n"; $htaccess .= "RewriteRule ^archiveindex/(.*).html(.*)$ ".$script_file."?archive=$1&subaction=list-archive$2 [L,NC]\n"; $htaccess .= "RewriteRule ^archive/(.*).html(.*)$ ".$script_file."?subaction=showfull&url=$1$2 [L,NC]\n"; $htaccess .= "RewriteRule ^archivepage/(.*)/(.*).html(.*)$ ".$script_file."?start_from=$2&archive=$1&subaction=list-archive$3 [L,NC]"; $file = fopen(".htaccess", "w"); fwrite($file, $htaccess); fclose($file); } echo $show_news; //Mod_rewrite end ###################################### 5. Open show_archives.php and find this: ###################################### error_reporting (E_ALL ^ E_NOTICE); ###################################### add below: ###################################### //Mod rewrite if($test != '') $archive = $test; //Mod rewrite ###################################### 6. Open show_news.php and find this: ###################################### error_reporting (E_ALL ^ E_NOTICE); ###################################### add below: ###################################### //Mod rewrite if($test != '') $archive = $test; //Mod rewrite ###################################### 7. Open inc/shows.inc.php and find this: ###################################### echo "<script type=\"text/javascript\">window.location=\"$PHP_SELF?subaction=showfull&id=$id&ucat=$ucat&archive=$archive&start_from=$start_from&$user_query\";</script>"; ###################################### replace with this: ###################################### echo "<script type=\"text/javascript\">window.location=\"$PHP_SELF\";</script>"; ###################################### 8. Open inc/shows.inc.php and find this: ###################################### $user_query = cute_query_string($QUERY_STRING, array( "comm_start_from","start_from", "archive", "subaction", "id", "ucat")); ###################################### add below: ###################################### if($user_query != "") $user_query = "&".$user_query; ######################################