Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/09/2009, 18:49
WinderJerter
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 15 años, 3 meses
Puntos: 5
Pregunta Respuesta: mod_rewrite2 para cutenews 1.4.5

Hola amigos que tal andan,,, bueno como puse en el comentario anterior ya resolvi la duda que tenia y para no abrir un nuevo tema que palteo aqui:

Lo que pasa esque ando quiero que la url del paginador de noticias que esta asi al url: xboxnetwork.co.cc/comments-pag/2/hola.html

Primero: pagina de los comentarios.
Segundo: numero de pagina de los comentarios.
Tercero: titulo de la noticia que se esta comentando.

y como yo kiero que queda la url es asi: xboxnetwork.co.cc/hola/comments-pag/2.html

Primero: titulo de la noticia que se esta comentando.
Segundo: pagina de los comentarios.
tercero: numero de pagina de los comentarios.

He estado modificando el codigo .htaccess para ver si lo podia cambiar como los demas links pero no sirvio en este , este el codigo:

Código:
RewriteEngine On
RewriteBase /

RewriteRule ^(.*)/post.html(.*)$ index.php?subaction=showfull&url=$1$2 [L,NC]
RewriteRule ^pag/(.*).html(.*)$ index.php?start_from=$1$2 [L,NC]

RewriteRule ^(.*)/comments.html(.*)$ index.php?subaction=showcomments&url=$1$2 [L,NC]
RewriteRule ^comments-pag/(.*)/(.*).html(.*)$ index.php?comm_start_from=$1&subaction=showcomments&url=$2$3 [L,NC]

RewriteRule ^archiveindex/(.*).html(.*)$ index.php?archive=$1&subaction=list-archive$2 [L,NC]
RewriteRule ^archive/(.*).html(.*)$ index.php?subaction=showfull&url=$1$2 [L,NC]
RewriteRule ^archivepage/(.*)/(.*).html(.*)$ index.php?start_from=$2&archive=$1&subaction=list-archive$3 [L,NC]

ErrorDocument 403 /403
ErrorDocument 404 /404
y tambien tengo que modificar el archivo php pero no se donde le tengo que cambiar, codigo php:

Código PHP:
<?PHP

//Mod_rewrite start
ob_start();

$path_to_data "/home/vol1/byethost10.com/b10_2348819/xboxnetwork.co.cc/htdocs/noticias/data";

$url $_GET['url'];
$test find_archive(title_to_id($url));
$id title_to_id($url);
$ucat title_to_ucat($url);

//Mod_rewrite end

$number=2;
include(
"/home/vol1/byethost10.com/b10_2348819/xboxnetwork.co.cc/htdocs/noticias/show_news.php");

//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 == "comments-pag"){
return 
"comments-pag/".$page."/".$title.".html";
}
else
return 
$title."/".$type.".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&amp;id=(.*?)&amp;archive=&amp;start_from=&amp;ucat=(.*?)&amp;#ie",
/*postcomments*/ "#".$script_file."\?subaction=showcomments&amp;id=(.*?)&amp;archive=&amp;start_from=&amp;ucat=(.*?)&amp;#ie",
/*postpage*/ "#".$script_file."\?start_from=(.*?)&amp;ucat=&amp;archive=&amp;subaction=&amp;id=(.*?)&amp;#i",
/*archiveindex*/ "#".$script_file."\?archive=(.*?)&subaction=list-archive#i",
/*archive*/ "#".$script_file."\?subaction=showfull&amp;id=(.*?)&amp;archive=(.*?)&amp;start_from=&amp;ucat=(.*?)&amp;#ie",
/*archivepage*/ "#".$script_file."\?start_from=(.*?)&amp;ucat=&amp;archive=(.*?)&amp;subaction=list-archive&amp;id=&amp;#i",
/*archivecomments*/ "#".$script_file."\?subaction=showcomments&amp;id=(.*?)&amp;archive=(.*?)&amp;start_from=&amp;ucat=(.*)&amp;#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=(.*?)&amp;archive=&amp;subaction=showcomments&amp;id=(.*?)&amp;ucat=(.*?)&amp;#ie",
/*acommentspage*/ "#".$script_file."\?comm_start_from=(.*?)&amp;archive=(.*?)&amp;subaction=showcomments&amp;id=(.*?)&amp;ucat=(.*?)&amp;#ie",
);

$replace = array( "id_to_title('\\1', false, 'post')",
"id_to_title('\\1', false, 'comments')",
"pag/\\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, 'comments-pag', '\\1')",
"id_to_title('\\3', '\\2', 'comments-pag', '\\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 ^pag/(.*).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 ^comments-pag/(.*)/(.*).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

?>
Según yo tengo que cambiar de orden la linea:

return "comments-pag/".$page."/".$title.".html";

la cual la cambio y me da un error en el cutenews y tambien hay esta lineas:

"id_to_title('\\2', false, 'comments-pag', '\\1')",
"id_to_title('\\3', '\\2', 'comments-pag', '\\1')",

que yo pienso que tambien les tengo de modificar algo pero no se...

espero que me puedan ayudar a resolver mi problema, se los agradeceria muchicimo,,, saludos

EDIT: se me olvidaba una cosa mas... como le puedo hacer para que las noticias esten en una carpeta por ejemplo asi, porque tengo el archivo que muestra las noticias en la carpeta ese pero las muestra en el index... talves sea por el .htaccess??? y la otra cosa que quiero es que cuando publiquen un comentario no te mande al index sino hay mismo gracias

xboxnetwork.co.cc/noticias/hola/post.html

Última edición por WinderJerter; 25/09/2009 a las 20:37