Riscrivere URL per i post di un blog senza passare ID

  • Creatore Discussione Creatore Discussione JtothaX
  • Data di inizio Data di inizio

JtothaX

Utente Attivo
2 Ott 2013
78
0
0
Treviso
Amici, chiedo qui a voi non avendo trovato nulla di utile in giro. Anzi, a dire il vero, non so nemmeno come tradurlo in parole chiave per la ricerca. Spero qualcouno qui afferri. Dunque.

Blog integrato nel mio sito.
miosito.it/?modulo=blog&id_post=5&titolo=Titolo
Poi, riscritto, mi diventa:
miosito.it/blog/5/Titolo

Ora voglio migliorarlo, specie in chiave SEO. Mi occorre una cosa del tipo
miosito.it/blog/Titolo-del-post
Per cui ho la pagina blog.php che, dinamicamente, dovrebbe essere:
blog.php?titolo=Titolo

Problema a livello di codice di progettazione di tutta sta cosa è che finche mi baso sulla chiamata $_GET['id_post'] per generare la pagina che ospiterà l'articolo, funziona tutto egregiamente. Cambiando direttive e lavorando con $_GET['titolo'] non regge. Ho bisogno di gestire il blog senza dover mettere in chiaro l'ID del post nei link perchè poi, riscrivendo il tutto con il famoso .htaccess, farò sicuramente grandi passi avanti in chiave SEO.

Al momento funziona con
miosito.it/blog.php?id_post=5&titolo=Titolo

Il problema è, appunto, che devo essere più I(n)Dipendente, mannaggia :(
Qualcuno ha mai avuto pensieri in merito?


Grazie as usual :)
 
Do una rinfrescata al topic.
Mi hanno suggerito di dare un occhio a soluzioni jQuery quasi a mascherare.
Sono ancora più perplesso di prima.

E continuo comunque a non trovare parole (chiave) per cercarmi soluzioni su Google.
Fosse stato un sito in WordPress mi sarebbero bastati due click.

Uff :(
 
Cercando in lungo e in largo tutorial per la creazione di blog...
Niente da fare, oh, tutti che partono con l'ID del post e se lo gestiscono così.
Anche la guida che ho visto proprio qui sul sito...


Ma sto chiedendo una cosa insensata o impossibile da realizzare?
O così complessa da renderla inspiegabile?


:(
 
Ancora nulla.
Ho proprio esaurito le idee, sono prossimo alla disperazione.
Nessuno che si fa avanti?

Nessuno? Nessuno? Nessuno?
Magari anche una cosa stupida mi illuminerebbe

:(
 
la query di estrazione in blog.php non puoi basarla sul titolo?

No, se passo il titolo del blog non funziona.
Solo il parametro univoco ID mi viene dato per buono.
Io ho bisogno, in sostanza, di nascondere l'ID del post del blog dall'URL finale...

Perchè, in ottica SEO, voglio avere una cosa del tipo
miosito.it/blog/Titolo-del-post/ oppure miosito.it/blog/Titolo-del-post.html
 
Riflessione al volo per refreshare il topic.

Pensavo: e se nascondessi parte dell'URL con il file htaccess? E' fattibile?
In giro ho visto qualcuno farlo ma forse ho male interpretato io.
Proprio su questo forum tempo addietro mi dissero che quando riscrivi la regola se passi tot parametri quelli devono rimanere. Ragion per cui rimando ancora nel caos...
 
Proseguono le ricerche per la risoluzione di questo topic/mio problema.

Riprendo quanto mi occorre fare. Alla pagina
miosito.it/blog.php?id_post=5&titolo=Titolo
voglio avere il link riscritto
miosito.it/blog/Titolo/
che fa bene al SEO e fa anche figo :)
Quindi, nascondere l'ID del post.

> Tempo fa, discutendo proprio su questo forum di rewrite URL e htaccess mi dissero che, quando riscrivo gli indirizzi, se passo tot parametri quelli devono rimanere pari pari. Il che mi fa pensare che non sia possibile quindi nascondere l'ID del post tramite il file htaccess.

> D'altro canto, però, credo che con il PHP non si riesca in quanto chiamare il post del blog tramite Titolo non da garanzie di unicità come invece l'ID, intero autoincr. che è fatto apposta per questo. Ho letto ogni genere di guida e visto ogni tutorial in merito a blog costruiti con il PHP e nessuno si pone questo problema, lavorano tutti con l'ID e via.

Ho girato in lungo e in largo per Google e sono giunto ad una conclusione:
una delle due opzioni non ha motivo di essere. Deve essere necessariamente (in parte o del tutto) sbagliata.
Altrimenti, cos'è, una esclusiva di WordPress, questa?!

...o c'è una terza via che mi sfugge?
 
Noto con sommo dispiacere che sta diventando più un monologo che un topic.
Credo comunque di essermi avvicinato un poco alla soluzione...

Sostanzialmente dovrei creare un ulteriore campo, slug, da utilizzare al posto dell'ID per richiamare il post che mi interessa. Ottenibile facilmente con una funzioncina che mi prende per esempio il titolo del post e me lo rende così:
titolo del mio post --> titolo-del-mio-post
e riscrivendo la regola nel file htaccess come già fatto.

Il problema è che non riesco a rendere UNICO il campo SLUG nuovo aggiunto alla tabella del blog.
Ci provo ma mi da l'errore 1062 e quindi resto bloccato.

A questo punto forse c'è un errore mio da qualche parte ma sto ricontrollando e mi pare tutto in ordine.

Suggerimenti in questo senso?
Dai che forse riusciamo a chiudere il topic!!


:)
 
Ciao JtothaX,

Quello che vuoi fare è fattibile, una soluzione è fare la query col titolo (che deve essere unico ed impostato come chiave nel DB) ma è una soluzione che non ti consiglio se il blog ha moltissimi post (diverse decine di migliaia)... in tal caso potresti implementare una soluzione basata su cache cioè scrivere (in automatico) dei file fisici con la struttura di URL che ti sei messo in mente...
WordPress lo fa ma le performances non sono il massimo se non implementi un qualche plugin per la cache...

In bocca al lupo

ps: modifico il titolo della discussione
 
Ciao JtothaX,

Quello che vuoi fare è fattibile, una soluzione è fare la query col titolo (che deve essere unico ed impostato come chiave nel DB) ma è una soluzione che non ti consiglio se il blog ha moltissimi post (diverse decine di migliaia)... in tal caso potresti implementare una soluzione basata su cache cioè scrivere (in automatico) dei file fisici con la struttura di URL che ti sei messo in mente...
WordPress lo fa ma le performances non sono il massimo se non implementi un qualche plugin per la cache...

In bocca al lupo

ps: modifico il titolo della discussione

Grazie Bauce!
Volevo optare per la prima opzione.
Il blog è in fase di avviamento e prima di arrivare a dei quantitativi di post come hai detto tu penso che il sito sarà giunto almeno alla sua versione 3.0 per cui avrò in saccoccia nozioni sufficienti a fare scelte diverse e diversamente migliori.

Al momento volevo optare proprio per l'unicità del titolo nella tabella del database. Ho già la funzione che mi fa questo lavoro qui egregiamente: titolo del post --> titolo-del-post (che andrei a salvare nel db).

Solo che non riesco a fare bene i settaggi quando creo il campo nel database.
Ho un campo ID che è chiave primaria auto-incr. Il campo, chiamiamolo URL, come lo setto perché sia equivalente all'ID ma non vadano diciamo in conflitto?

Al momento la tabella ha solo 5-6 entry quindi ho anche la possibilità di resettare tutto.
Il sito si appoggia sul mio CMS, niente WordPress :)


Grazie ancora Boss,
dai che forse la mia agonia è in dirittura d'arrivo :)
 
Al momento il codice che mi gestisce il tutto è questo...

PHP:
// la variabile titolo è pura nel database mentre qui ha i trattini messi dall'apposita funzione
<a href="blog.php?id_post=$id&titolo=$titolo">

// dopodichè
$sql = "SELECT * FROM blog WHERE id_post='" .$_GET['id_post']. "'";
// etc...


Se nella select metto titolo al posto di id_post non funziona.
L'ID deve per forza esserci perché la baracca funzioni. Al momento.

Come mi devo muovere adesso?
 
Giusto per non lasciare le cose in sospeso.
Ho risolto. Potete anche spazzolare via il topic, tanto è stato un monologo di due pagine.

Bella a tutti
 

Discussioni simili