• Super User

    [pillolina][URL REWRITE] come ottenere SOLO la riscrittura che vogliamo

    in molti sanno che se impostiamo una regola come:

    
    RewriteRule ^articolo_([0-9]+)/(.*).html$ articolo.php?id=$1
    
    

    nel file .htaccess del nostro sito possiamo ottenere url di questo tipo:

    
    http,//www,sito.it/articolo_10/come-usare-url-rewrite.html
    
    

    e la pagina che risponderà sarà articolo.php?id=10

    però... esiste un però. Se cerchiamo di spingere questa pagina creando un po' di backlink e poi ci viene voglia di cambiare titolo come possiamo fare?
    se il titolo da come usare url rewrite cambiamo in consiglio per usare url rewrite tutti i backlink che abbiamo cercato non serviranno più a niente o peggio ancora google troverà due pagine con lo stesso contenuto (perchè risponderanno tutte e due) e quindi una la elimina.

    per fare questo possiamo andare a controllare che il nome della pagina fittizia sia effettivamente corretto:

    il titolo della nostra pagina è "come usare url rewrite"
    poniamo di avere una funzione che elimina i caratteri che non ci piaccono e sostituisce gli spazi con il trattino. Il nuovo titolo diventa
    come-usare-url-rewrite

    la prima cosa da fare è modificare la regola nel file .htaccess in questo modo:
    RewriteRule ^articolo_([0-9]+)/(.*).html$ articolo.php?id=$1&url=$2

    a questo punto recuperiamo come parametro il nome dle file che viene chiamato.

    codice php per il controllo:

    
    $url=isset($_GET['url'])?strtolower($_GET['url']):'';
    		$urlCorretto=normalizzaXURL($row['titolo']);
    		if ($url!=$urlCorretto)
    		{
    			//qui abbiamo un url diverso
    			Header( "HTTP/1.1 301 Moved Permanently" ); 
    		Header( 'Location: articolo_'.$articolo->row['id'].'/'.$urlCorretto.'.html');
    		}
    
    
    

    in quesot modo se decidiamo di cambiare titolo alla pagina oppure viene creato un backlink che non punta all'url corretto possiamo dire ai motori di ricerca un bel codice 301 move permanently e caricare la pagina giusta.

    ho scritto tutto di getto, se qualcosa non si capisce, c'è qualche imperfezione o qualche perfezionamento da fare (ANCHE SE NORMALMENTE QUELLO CHE SCRIVO IO è SEMPRE CORRETTO E SEMPRE PIù CHE PERFETTO rispondete pure qui che provvedo a correggerlo