- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- piccolo problemino col rewrite
-
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
-
Ciao -S- e Benvenuto nel Forum GT,
ti sposto nella sezione adatta: Php
Giorgio
-
io ancora non sono riuscito a risolvere, è ua cosa cosi impossibile o mi sono spiegato male ?
-
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.
-
@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 startfunction 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
?>
-
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.
-
azz ma è davvero cosi impossibile ?
-
-
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.htmlse questo problema non è risolvibile, volevo sapere se google le interpreta come 2 pagine uguali e le banna ?
in realtà la pagina è una sola...
-
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.htmlse questo problema non è risolvibile, volevo sapere se google le interpreta come 2 pagine uguali e le banna ?
in realtà la pagina è una sola...