- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- mod_rewrite per news.php?id=333
-
mod_rewrite per news.php?id=333
ragazzi
ho bisogno di un aiuto per creare un mod rewrite.
semplicemente vorrei che la pagina news.php?= si riscritta con il tittolo della news e gli spazi sia sostituiti come trattini (-) e inserire anche l'id (nel caso di articoli con lo stesso titolo).quindi una cosa tipo /macchina-fotografica-canon-121212.html
io non so proprio da dove partire.ps. sono su aruba (linux)
-
Ciao,
dovresti creare un codice (con php o altri linguaggi che usi) che ti modifichi gli URL in quello che vuoi tu, per modifica intendo gli url che vengono stampati nell'html, e che quindi vengono poi cliccati dagli utenti.Dopodichè creai le regole di rewrite per fare in modo che i nuovi link /macchina-fotografica-canon-121212.html
vengano reindirizzati ai vecchi news.php?id=121212A che punto sei di questi 2 passi?
-
praticamente a 0.
è la primissima volta che mi cimento nel mod. e non soda dove iniziare.
-
Bene, crea una funzione (suppongo utilizzi php) che ti crei gli url dinamicamente (questa è una via, magari ne preferisci un altra).
ad esempio, la funzione prende come parametri l'id della news.
La funzione fa la query al database, si prende il nome della news, tratti il nome in modo che sia url compatibile(togliendo i caratteri particolari) e sputi fuori l'url.
Fatto questo supponiamo che tu abbia gli url craeti del tipo:
/nuova-macchina-fotografica-esempio-nw123.html(notare il "nw" messo per riconoscere poi l'id, si può evitare, si possono utilizzare tecniche diverse, dipende dalle esigenze)
il rewrite sarà una cosa del tipo:
RewriteCond %{REQUEST_URI} \/.*nw(\d).html$ RewriteRule ^.*nw(\d).html$ news.php?id=$1 [QSA,L]
-
ok grazie.
una cosa:
la pagina new.php?id= estre i dati dal daatbase tra cui anche il titolo.come faccio a dire al mod_ che deve reiscrivere la url?
-
attenzione, sei tu che riscrivi l'url.
Il mod_rewrite lo interpreta, tramite regole(regexp) nell'htacces, ne estrae eventuali parametri e li passa al "vecchio" url, se cosi si può direEsempio: tu fai in modo che l'utente clicchi sul nuovo url. E' poi compito del rewrite interpretare l'url e far vedere all'utente cio che avrebbe visto col vecchio url.
(spero di non aver incasinato le idee...nonsono un genio nelle spiegazioni :D)
Ciao