- Home
- Categorie
- Digital Marketing
- Posizionamento Nei Motori di Ricerca
- Il mod_rewrite mi crea una sottodirectory e perdo lo stile pagina
-
Il mod_rewrite mi crea una sottodirectory e perdo lo stile pagina
Ciao a tutti.
Preannuncio che sono un nubbio per quanto riguarda il php...sto cercando di imparare...
Dunque, sto usando CuteNews per l'inserimento delle news sul mio sito, tutto funziona come desidero (o quasi) e mi stavo accingendo a cercare un modo di effettuare il mod_rewrite per avere URL "migliori".
Ho trovato un hack di Cutenews che pare funzionare, ma....Allora:
la pagina nella quale vengono mostrate le news ha il seguente URL:
miosito.com/news/news.phpcome da hack CuteNews ho inserito, prima del comando "include" il seguente codice:
#############################
//Mod_rewrite
ob_start();
//Mod_rewrite
#############################e dopo il comando "include" questo:
#############################
//Mod_rewrite
$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=(.?)&#i",
/postcomments/ "#".$script_file."?subaction=showcomments&id=(.?)&archive=&start_from=&ucat=(.?)&#i",
/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=&#i",
/archivepage/ "#".$script_file."?start_from=(.?)&ucat=&archive=(.?)&subaction=list-archive&id=&#i",
/archivecomments/ "#".$script_file."?subaction=showcomments&id=(.?)&archive=(.?)&start_from=&ucat=(.)&#",
/searchnews/ "#".$script_file."?misc=search&subaction=showfull&id=(.?)&archive=&cnshow=news&ucat=(.?)&start_from=#",
/searcharchives/ "#".$script_file."?misc=search&subaction=showfull&id=(.?)&archive=(.?)&cnshow=news&ucat=(.?)&start_from=#",
/ncommentspage/ "#".$script_file."?comm_start_from=(.?)&archive=&subaction=showcomments&id=(.?)&ucat=(.?)&#",
/acommentspage/ "#".$script_file."?comm_start_from=(.?)&archive=(.?)&subaction=showcomments&id=(.?)&ucat=(.*?)&#",
);$replace = array( "post/\1-\2.html&",
"postcomments/\1-\2.html&",
"postpage/\1.html&",
"archiveindex/\1.html&",
"archive/\1/\2.html&",
"archivepage/\2/\1.html&",
"archivecomments/\1/\2.html&",
"searchnews/\1/\2",
"searcharchives/\1/\2",
"ncommentspage/\1/\2-\3.html&",
"acommentspage/\1/\2/\3.html&",
);$show_news = preg_replace($find,$replace,$show_news);
if(!file_exists('.htaccess')){
$htaccess = "RewriteEngine On\n";
$htaccess .= "RewriteBase ".$path."\n\n";
$htaccess .= "RewriteRule ^post/([0-9])-(.).html(.)$ ".$script_file."?subaction=showfull&id=$1&ucat=$2$3 [L,NC]\n";
$htaccess .= "RewriteRule ^postcomments/([0-9])-(.).html(.)$ ".$script_file."?subaction=showcomments&id=$1&ucat=$2$3 [L,NC]\n";
$htaccess .= "RewriteRule ^postpage/(.).html(.)$ ".$script_file."?start_from=$1$2 [L,NC]\n\n";
$htaccess .= "RewriteRule ^archiveindex/(.).html(.)$ ".$script_file."?archive=$1&subaction=list-archive$2 [L,NC]\n";
$htaccess .= "RewriteRule ^archive/([0-9])/(.).html(.)$ ".$script_file."?subaction=showfull&id=$1&archive=$2$3 [L,NC]\n";
$htaccess .= "RewriteRule ^archivepage/(.)/(.).html(.)$ ".$script_file."?start_from=$2&archive=$1&subaction=list-archive$3 [L,NC]\n";
$htaccess .= "RewriteRule ^archivecomments/(.)/(.).html(.)$ ".$script_file."?subaction=showcomments&id=$1&archive=$2$3 [L,NC]\n\n";
$htaccess .= "RewriteRule ^searchnews/([0-9])/(.)$ ".$script_file."?misc=search&subaction=showfull&id=$1&ucat=$2&cnshow=news& [L,NC]\n";
$htaccess .= "RewriteRule ^searcharchives/([0-9])/(.)$ ".$script_file."?misc=search&subaction=showfull&id=$1&archive=$2&cnshow=news& [L,NC]\n\n";
$htaccess .= "RewriteRule ^ncommentspage/(.)/(.)-(.).html(.)$ ".$script_file."?comm_start_from=$1&archive=&subaction=showcomments&id=$2&ucat=$3$4 [L,NC]\n";
$htaccess .= "RewriteRule ^acommentspage/(.)/(.)/(.).html(.*)$ ".$script_file."?comm_start_from=$1&archive=$2&subaction=showcomments&id=$3$4 [L,NC]";$file = fopen(".htaccess", "w");
fwrite($file, $htaccess);
fclose($file);
}echo $show_news;
//Mod_rewrite######################################
Senza il mod_rewrite, cliccando sui commenti della singola news visualizzata, mi si apre una pagina nella quale viene viesulaizzata la news, i commenti ed il form per l'inserimento degli stessi con URL:
miosito.com/news/news.php?subaction=showcomments&id=1328802658&archive=&start_from=&ucat=4&
con il mod_rewrite invece, l'URL viene trasformato in:
miosito.com/news/postcomments/1328802658-4.html&la pagina viene visualizzata, ma la creazione della nuova sottodirectory "postcomments" impedisce la corretta visualizzazione della stessa (si perde il percorso relativo del file .css).
Da nubbio in cerca di risposte ho provato a mettere le mani nel codice del mod_rewrite ed ho provato ad eliminare tutte le istruzioni relative a "postcomments" ed ho ottenuto, cliccando sul link che porta alla pagina dei commenti, una pagina con URL:
miosito.com/news/1328802658-4.html&
che mi restituisce però un errore 404.
Qualcuno è in grado di aiutarmi a risolvere il problema?
Grazie mille
Matteo