- Home
- Categorie
- Digital Marketing
- SEO
- Indicizzazione pagine dinamiche .php e miglioramento url
-
Grazie per il prezioso aiuto.. come sempre del resto....
La struttura dell'url l'avevo pensata come mi hai suggerito te ed è di questo tipo
http://www.pitiglianodoc.com/cerca.php?localita=nomelocalita&tipo=tipostruttura&nome=nomestruttura
i vari script che ho fatto funzionano bene, puoi vederlo visitando il sito www.pitiglianodoc.com, mi manca la parte dell'url rewriting e il modo di risolvere alcuni problemini... scusa se ti stresso un po' ma siccome ho in mente di utilizzare gli script anche per altri miei siti è importante che tutto sia ok...
Il rewrite lo vorrei proprio come hai detto te, in modo che la struttura sia ad albero, se poi riesco a nascondere il cerca.php anche meglio... Solo che oltre alla regola non ho capito alcune cose:
La funzione cerca.php la chiamo da un url passando come parametri quelli che recupero con una query dal db, ecco il frammento di codice:
<a href="cerca.php?localita=<?php echo $row->localita; ?>&tipo=<?php echo $row->tipo; ?>&nome=<?php echo $row->nome; ?>
poi ovviamente li recupero con il get nel file cerca.php, quello che vorrei sapere è come devo modificare questo frammento di codice dopo aver fatto il rewrite.
Infine vorrei sapere come gestire la presenza di spazi nel nome della struttura, nella colonna nome del db ho il nome dell struttura con degli spazi (tipo Agriturismo Il Laghetto), questo fa si che al momento attuale senza rewrite al posto dello spazio nell'url ci sia un %20, ovviamente vorrei un - ...
Fammi sapere e scusa per il disturbo...
-
Figurati Isi, hai fatto un bel lavoro e merita una giusta ottimizzazione degli URL.
Per questo non mi sento di darti consigli, aspetto chi è più preparato di me nell'URL REWRITE
-
grazie....
avevo un db fra le mani e mi è venuto in mente di generare un portalino con una pagina dedicata per ogni struttura del db, così ieri ho fatto questi script ed ottimizzato un menù ad albero in css, così tutti i link importanti saranno direttamente linkati alla home...
ti chiedo solo di dirmi come gestire l'url in questo frammento di codice dopo il rewrite
<a href="cerca.php?localita=<?php echo $row->localita; ?>&tipo=<?php echo $row->tipo; ?>&nome=<?php echo $row->nome; ?>
io non cho capito bene quello che fa il rewrite e se questo frammento lo devo lasciare uguale oppure modificare....
-
Ciao Isidoro,
Per il rewrite puoi provare con questo [url=http://www.webmaster-toolkit.com/mod_rewrite-rewriterule-generator.shtml]tool online
ho provato il tuo URL e mi restituisce questo codice per l'.htaccess :
Options +FollowSymLinks RewriteEngine on RewriteRule cerca/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/$ /cerca.php?$1=$2&$3=$4&$5=$6
non l'ho provato, ma a prima vista mi pare possa andare bene se ho capito la struttura dell'url che vuoi avere, il formato dell'URL che dovrebbe uscire è questo:
http://www.pitiglianodoc.com/cerca/localita/nomelocalita/tipo/tipostruttura/nome/nomestruttura /
Per gli spazi invece puoi usare la funzione strreplace di php per mettere il trattino al posto degli spazi:
$stringa-con-trattino=strtr($stringa-senza-trattino, " ", "-");
devi quindi prima estrarre dall DB stringa-senza-trattino e poi elaborarla con la funzione strtr.
Ho fatto tutto al volo e non ho ben controllato, se ci dovesse essere qualche errore fammi sapere che lo aggiustiamo ;).
-
Ciao Marcello,
Grazie per l'aiuto e per la pazienza...
La regola postata non funge e non mi fa recuperare bene i dati dal db
http://www.pitiglianodoc.com/cerca.php/localita/pitigliano/tipo/agriturismo/nome/Agriturismo Eden
In realtà non farebbe neanche quello che ho in mente io infatti vorrei passare
da questo indirizzohttp://www.pitiglianodoc.com/cerca.php?localita=pitigliano&tipo=agriturismo&nome=Agriturismo Eden
a questo (nascondendo la funzione cerca sarebbe il top)
http://www.pitiglianodoc.com/pitigliano/agriturismo/Agriturismo-Eden.htm
Ieri avevo chiesto aiuto anche su html.it e mi avevano dato questa regola, che in ogni caso mi dava problemi
RewriteEngine on
RewriteBase /
RewriteRule ^cerca/([^/]+)/([^/]+)/([^/]+).html cerca.php?localita=$1&tipo=$2&nome=$3Oltre alla regola mi interessa come gestire questo frammento di codice
<a href="cerca.php?localita=<?php echo $row->localita; ?>&tipo=<?php echo $row->tipo; ?>&nome=<?php echo $row->nome; ?>
Non ho ben capito come e quando entra in funzione l'url rewriting, per recuperare correttamente dal db il nome della struttura devo far pervenire alla funzione cerca.php il nome della struttura così come è nel db, quindi con spazi. Dove è che devo gestire questa cosa?
Nel parametro da passare mi serve con gli spazi, nell'url la vorrei con trattino...
Non so se mi sono spiegato bene, in ogni caso grazie per la vostra gentilezza e disponibilità, se non sono stato chiaro fatemelo sapere che provo a spiegarmi meglio...
Un saluto
-
Ciao ragazzi...
qualora nessuno di voi mi possa aiutare a risolvere il problema spiegato sopra potreste indicarmi risorse sull'url rewriting e magari consigli su a chi chiedere....
Ciao e grazie per l'aiuto...
-
Dunque, per il rewrite ho capito cosa intendi, bisogna però che me lo guardi meglio prima di darti una soluzione.
Per il trattino puoi lavorare a livello di script, con il trattino quando fai l'url e senza quando recuperi i dati dal DB, non so se si può fare anche da .htaccess, probabilmente sì, bisogna che guardo un po'
Direi che dovresti cominciare per capirci di più dallo studio delle regexp
alcuni link:
http://www.marcopagnanini.it/articoli/regexp.php
http://www.fogliata.net/2006/05/27/risorse-htaccess/
-
ok grazie marcello...
se mi dai un'occhiata alla regola e ai parametri da passare nell'url te ne sarò infinitamente grato...
io intanto darò un'occhiata ai link che mi hai dato e inizierò a studiare un po' le espressioni regolari.....
-
grazie a giorgio e marcello per l'aiuto...
sono riuscito a risolvere tutto, grazie anche ai preziosi suggerimenti di luca...
a chi dovesse servire la regola che ho usato per gestire l'url rewriting è:
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]+)/([^/]+)/([^/]+).htm /cerca.php?localita=$1&tipo=$2&nomet=$3fra i parametri passo il nome della struttura, lo passo con - poi utilizzo la funzione strtr del php per riportale il nome a una forma conforma a query nel db, quindi con gli spazi....
Spero che il mio esempio possa essere di aiuto a chi ha problemi simili....
[/quote]
-
Ciao a tutti ho un problema per quanto riguarda il mio sito, se andate su aste-gratis.it/Strumenti-Musicali-240.html e cliccate una asta il browser la vede così
aste-gratis.it/Cassa Marshall 400 watt jcm lead 800 1982-3.html
praticamente il titolo dell?asta non mi mette i trattini negli spazi il titolo dell?asta sarebbe
Cassa Marshall 400 watt jcm lead 800 1982 e dovrebbe essere
Cassa-Marshall-400-watt-jcm-lead-800-1982.html
praticamente dalla home page se clicco un asta appare corretto con i trattini, invece se clicco una categoria ad esempio strumenti musicali
**aste-gratis.it/Strumenti-Musicali-240.html **e clicco un asta non mi mette i trattini ma vedo il simbolo% con questo errore nel browser
The requested URL /Cassa Marshall 400 watt jcm lead 800 1982-3.html was not found on this server.il mio file htaccess è così
DirectoryIndex index.php
secure htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>disable directory browsing
#Options All -Indexes
disable access to logs/template files
<Files ~ ".(log|tpl)$">
order allow,deny
deny from all
</files>RewriteEngine On
RewriteBase /RewriteRule ^([a-zA-Z0-9--]+)-([0-9]+).html$ browse.php?id=$2
RewriteRule ^([a-zA-Z0-9_-]+)-([0-9]+).html$ item.php?id=$2RewriteEngine On
RewriteBase /
RewriteRule ^sitemap.xml ./sitemap.php [L,QSA]cosa posso fare?