• User

    piccolo problemino col rewrite

    in altri forum nessuno mi ha cagato, provo qui che mi sembra il migliore

    ho installato un rewrite su cutenews seguendo una guida, però c'è un piccolissimo problema, nella home il mio indirizzo diventa:

    www.miosito.com/news/titolo.html

    ma se io applico lo stesso php di cutenews nelle altre pagine che hanno un pezzo di indirizzo in più diventa

    www.miosito.com/PARTE_DI_TROPPO/news/titolo.html

    e quindi mi trova pagina bianca...., come posso eliminare quella parte di troppo ?

    questo è il mio codice del rewrite sul .htaccess

    RewriteEngine On
    RewriteBase /

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

    RewriteRule ^comments/(.).html(.)$ full.php?subaction=showcomments&url=$1$2 [L,NC]
    RewriteRule ^commentspage/(.)/(.).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]

    io non capisco dove si setta l'indirizzo di partenza,voglio che lo script parta dall'indirizzo home e non dall'url di una sottocartella in cui si trova

    creando un altro .htaccess dentro sottocartella funziona, ma mi da l'indirizzo con quel pezzo di troppo e quindi mi trovo 2 pagine uguali..., e forse google mi banna...,
    non conosco il codice per dirgli di sommare la stringa partendo dalla home e non dal punto in cui si trova...

    help


  • Community Manager

    Ciao -S- e Benvenuto nel Forum GT,

    ti sposto nella sezione adatta: Php 😉

    Giorgio


  • User

    io ancora non sono riuscito a risolvere, è ua cosa cosi impossibile o mi sono spiegato male ?


  • User Attivo

    Non è molto chiaro, però è evidente che "parte_di_troppo" la mette il codice php che hai inserito (e non l'.htaccess). Se puoi posta quello.


  • User

    @margheritebianche said:

    Non è molto chiaro, però è evidente che "parte_di_troppo" la mette il codice php che hai inserito (e non l'.htaccess). Se puoi posta quello.

    eccolo ```

    <?PHP
    //Mod_rewrite start
    ob_start();
    $path_to_data = "http://www.nintendoglobal.net/news/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 = 12;
    include("../news/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 == "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( /news/ "#".$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, 'news')",
    "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, 'news')",
    "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 ^news/(.
    ).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
    ?>


  • User

    dai che se riesco a risolvere questa cosa, poi posto il codice completo di un cutenews perfetto completo di rewrite, meta,title, e tutto il resto.

    mi manca solo questa cosa per renderlo perfetto.


  • User

    azz ma è davvero cosi impossibile ?


  • User

    😞


  • User

    a questo punto se il problema mi diventa irrisolvibile quello che mi preme sapere è una cosa:

    inserendo una news dato che non riesco a sistemare il rewrite se ci clicco dalla home il rewrite mi genera una cosa, se ci clicco da una sottorcartella mi diventa un altro indirizzo
    esempio:

    dalla home: http://www.sito.net/news/titolo.html
    da tornei : http://www.sito.net/tornei/news/titolo.html

    se questo problema non è risolvibile, volevo sapere se google le interpreta come 2 pagine uguali e le banna ?
    in realtà la pagina è una sola...


  • User

    a questo punto se il problema mi diventa irrisolvibile quello che mi preme sapere è una cosa:

    inserendo una news dato che non riesco a sistemare il rewrite se ci clicco dalla home il rewrite mi genera una cosa, se ci clicco da una sottorcartella mi diventa un altro indirizzo
    esempio:

    dalla home: http://www.sito.net/news/titolo.html
    da tornei : http://www.sito.net/tornei/news/titolo.html

    se questo problema non è risolvibile, volevo sapere se google le interpreta come 2 pagine uguali e le banna ?
    in realtà la pagina è una sola...