Creare URL SEO con PHP

  • Creatore Discussione Creatore Discussione Jonn
  • Data di inizio Data di inizio

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Salve a tutti,
ho un problema con i link, siccome ho il mio sito web nel quale ho voluto ottimizzare tutto il codice sorgente per renderlo totalmente conforme alle regole W3C in XHTML 1.0 Strict ed in CSS 3, già che ci sono ho deciso di riscrivere i link (più per uno sfizio).

Ora, come ho detto (se non sbaglio) in altre discussioni che ho aperto, io utilizzo una sola index.php nella quale il <div id="content"> scorre tutte le pagine con uno SWITCH sulle variabili passate dai link in questo modo (<a href="?pagina=homepage"><b>Home</b></a>).

Da qui si deduce logicamente che il link che ne viene fuori sarà così:
- http://www.johnnyferrari.it/index.php?pagina=homepage
- http://www.johnnyferrari.it/index.php?pagina=profilo
- http://www.johnnyferrari.it/index.php?pagina=concept
- http://www.johnnyferrari.it/index.php?pagina=......

Mentre a me interessa farli apparire in questo modo:
- http://www.johnnyferrari.it/homepage/
- http://www.johnnyferrari.it/profilo/
- http://www.johnnyferrari.it/concept/
- http://www.johnnyferrari.it/....../
(Oppure senza lo slash finale, per me è uguale)

Ho valutato 2 soluzioni:

1. Utilizzare il file .htaccess:
mi sono informato un po' sulle espressioni regolari da utilizzare su apache dentro il file .htaccess, ma devo ammettere che non avendole mai usate ci ho capito poco o niente.
Ero giunto alla conclusione di usare RewriteRule ma ho capito che non è il suo utilizzo corretto per quello che voglio fare io (o perlomeno non è quello più appropriato e professionale).

2. Cambiare codice PHP:
Qui sono punto e a capo perchè non so proprio da dove rifarmi, per questo chiedo aiuto a chi ha più esperienza di me.

Grazie anticipatamente per le risposte.
 
Scusate se riuppo ma non so più dove sbattere la testa per questo problema.
primo ed ultimo up.
 
Ero giunto alla conclusione di usare RewriteRule ma ho capito che non è il suo utilizzo corretto per quello che voglio fare io (o perlomeno non è quello più appropriato e professionale).
Ti linko il manuale ufficiale del mod_rewrite anche se vedo che l'hai escluso anche se non ho capito il motivo per cui pensi che non sia professionale utilizzarlo, puoi spiegare come sei giunto a questo giudizio?
 
Ti linko il manuale ufficiale del mod_rewrite anche se vedo che l'hai escluso anche se non ho capito il motivo per cui pensi che non sia professionale utilizzarlo, puoi spiegare come sei giunto a questo giudizio?

L'ho escluso perchè parlando con quelli di Aruba (il mio hoster) mi hanno detto che il RewriteRule serve essenzialmente per redirezionare il traffico da collegamenti inesistenti.

Come ho già detto, io non ne so di espressioni regolari, ed è appunto la prima volta che mi ritrovo a fare questa cosa, se poi mi dici che è una cosa fattibile allora posso ritentare, ma con le ricerche che ho fatto da google (e ne ho fatte a palate sull'utilizzo di questa espressione) non ho cavato un ragno da un buco, oppure sbagliavo il mio metodo di ricerca.

Voglio anche approfittare per domandare se una volta create le espressioni per tutte le pagine devo cambiare anche i link scrivendoli in forma:
HTML:
<!-- da -->
<a href="?pagina=nomepagina">Link</a>
<!-- a -->
<a href="/pagina">Link</a>





Invece per quanto riguarda quello che mi ha scritto Luigi rispondo:

Avevo già trovato anche io quella soluzione, adesso ho riprovato
Ho creato l'htaccess con questo codice che mi ha generato:
# Enable Rewrite Engine
RewriteEngine on
#Create friendly URL
RewriteRule ^homepage$ ?pagina=homepage [L]

L'ho caricato nella root del server, ho cambiato il primo link del menu del mio sito web e ci ho messo:
HTML:
<a href="/homepage">Home</a>

Funzionare funziona, quindi ok, però (c'è un però XD), posso fare in modo che tutti i link in forma "?pagina=***" appaiono così -->> "/***"
Senza dover scrivere la regola una per ogni pagina?

Questa è la soluzione che adotterei in questo caso, però ecco, vorrei anche delle vostre idee, ringrazio intanto per le risposte che mi hanno spinto a fare un passo avanti (almeno penso e spero XD).
Ciau
 

Discussioni simili