- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- aiuto con MOD REWRITE...
-
aiuto con MOD REWRITE...
dunque, sto cercndo di rendere più user-and-robot-friendly le mie pagine....
vorrei fare in modo che una delle mie URL del tipo:
http://www.sagreinitalia.it/dettagli.asp?ID_S={3C35ABFA-5D0F-4910-BC98-7FDBDDBB4E17}
venisse riscritta in modo da includere il nome della manifestazione, luogo e data... del tipo
http://www.sagreinitalia.it/dettagli.asp?La-Baio-di-Sampeyre-Carnevale-Storicoo insomma, qualcosa del genere...
volevo sapere un paio di cose...
-
tramite MOD_REWRITE sarebbe possibile fare una roba simile o il mod rewrite "riscrive" solo le variabili in modo più "legibile" ? In pratica io dovrei leggere le info dal DB e ricostruire l'URL, mica facile....)
-
se la risposta alla 1) è stata "sì", vale la pena passare a Hosting Doppio Win+Linux (al momento io sono su aruba hosting windows...)?
grazie dei pareri
-
-
@autodafe said:
- tramite MOD_REWRITE sarebbe possibile fare una roba simile o il mod rewrite "riscrive" solo le variabili in modo più "legibile" ? In pratica io dovrei leggere le info dal DB e ricostruire l'URL, mica facile....) Se ho ben capito cosa intendi, si.
Si può fare, ma non è semplicissimo.
Devi modificare gli url tramite htaccess inserendo tutte le informazioni necessarie a pescare la pagina da DB e in più aggiungere una parte di url jolly. Cioè una parte in cui qualunque carattere viene inserito è del tutto ignorato. In questo modo nella parte "jolly" puoi mettere le parole che ti interessano senza che vengano considerate per individuare i contenuti della pagina.
Poi devi pescare da DB il titolo delle pagine e costruire l'url composto dalla parte significativa (i numeri necessari a prendere i contenuti) e dalla parte jolly (contenende ad esempio il title della pagine a cui punta il link opportunamente filtrato e adattato).
Spero di essere stato chiaro... Ma non credo
Purtroppo non è banalissima come cosa.
@autodafe said:
- se la risposta alla 1) è stata "sì", vale la pena passare a Hosting Doppio Win+Linux (al momento io sono su aruba hosting windows...)? Vedi tu
-
Mmm...
su hosting Windows non puoi utilizzare il mod_rewrite (che è un modulo di apache).Su aruba con hosting linux non puoi utilizzare il mod_rewrite (che è un modulo che non ti attivano).
Ci sono alcune tecniche che ti permettono di utilizzare la riscrittura degli url anche sotto windows ma c'è comunque bisogno di accede a delle impostazioni di IIS, quindi forse è meglio cambiare hosting.
Saludos.
-
@Deantenea said:
Su aruba con hosting linux non puoi utilizzare il mod_rewrite (che è un modulo che non ti attivano).
boh... io ho hosting linux e uso il mod rewrite su quasi tutti i miei siti
perche' dici che aruba non lo attiva?
-
@Deantenea said:
Mmm...
su hosting Windows non puoi utilizzare il mod_rewrite (che è un modulo di apache).e fin qui ok...
@Deantenea said:
Su aruba con hosting linux non puoi utilizzare il mod_rewrite (che è un modulo che non ti attivano).
ho chiesto a loro (aruba) e mi hanno detto che con hosting linux, oppure nel mio caso hosting doppio si può gestire il mod_rewrite...
-
vedere qui, tra l'altro...
-
grazie della risposta, devo leggermi ancora un paio di volte il tutto per essere sicuro di aver capito...comuqnue l'importante è che si possa fare...il come poi lo troverò, almeno spero...:)
-
Confidiamo in te
-
allora, la buona notizia è che sono passato ad hosting (aruba) misto Win+Linux, che ho provato un semplice rewrite re-indirizzando tutte le richieste a index.php a un altra pagina e funziona...:)
la cattiva notizia è che ora mi devo smazzare un bel po' di codice partendo praticamente da zero per quanto riguarda il rewrite delle mie url in user-friendly...qualsiasi aiuto , o link a guide/tutorial per farlo è MOLTO ben accetto !!!
grazie in anticipo
-
allora, non so se ho fatto una cosa del tutto corretta...però sembra che funzioni...
allora...ho rigenerato le mie URL in modo che vengano prese dal DB come quella che segue:
(almeno ho nella URL il nome della manifestazione e la città...)
la RewriteRule che ho creato estrae l'ID della sagra e reindirizza alla URL reale...
RewriteRule ^(.)/..htm$ http://www.sagreinitalia.it/dettagli.asp?ID_S=$1 [R,L]
è corretto più o meno? :?sarebbe opportuno accorciare quell'ID abnormemente lungo vero?? (mannaggia a me e a chi mi ha fatto usare un Uniqueidentifier come ID....:x)
-
OK, ho deciso , cambio quell'orendo uniqueidentifier con un bigint..sto facendo dei test su una tabella duplicata e sembra tutto Ok forse ci siamo !!!
-
ok, gli ultimi test mi danno questa URL:
lnx.sagreinitalia.it/1193/S.Casciano-Val-di-Pesa-Mercantico-e-Festa-dei-Confetti.htm
convertita correttamante...non uso più uno uniqueidentifier come id ma un bigint...
molto meglio, no ???:)
ulteriore domanda....secondo voi la URL con città e nome completo è troppo lunga oppure è OK ?
-
Ciao autodafe,
Come ha detto claudioweb non è banalissima la cosa.
Ho tanta esperienza su questo argomento e vedo che ci sono alcune cose che potresti migliorare.1.- Una parte Jolly nelle URL non è una buona idea, perché cambiando questa parte jolly che serve a niente, andresti a creare una URL diversa con contenuto uguale, quindi contenuto duplicato.
2.- Usare l'ID e meglio del uniqueidentifier evidentemente ma... allontana di un livello la struttura del sito, cioè stai a due livelli dalla radice con una directory (id) che non dice niente a nessuno (user/spider).
3.- Usare il titolo della pagina, quello nel record del DB non è buono, perché dovresti formattare il titolo per farlo URL compatibile. Ci sono dei caratteri speciali che non si devono usare nelle url. Ricorda anche che maiuscole e minuscole in Unix sono due cose diverse...
spero che questi 3 punti ti possano servire visto che stai iniziando con questo utilissimo sistema. Ti direi anche di leggere un po' su "regular expressions", ti sarà molto utile. www.regular-expressions.info
Ciao e buon lavoro.
-
@masterx said:
1.- Una parte Jolly nelle URL non è una buona idea, perché cambiando questa parte jolly che serve a niente, andresti a creare una URL diversa con contenuto uguale, quindi contenuto duplicato.
questa non l'ho ben capita...:?intendi dire che la nuova URL è del tutto siile alla vecchia? mi puoi esplicitare please???
@masterx said:
2.- Usare l'ID e meglio del uniqueidentifier evidentemente ma... allontana di un livello la struttura del sito, cioè stai a due livelli dalla radice con una directory (id) che non dice niente a nessuno (user/spider).
ok, e quindi se costruissi la URL (anzichè /ID/citta-Titolo-della-manifestazione.htm) del tipo "ID-citta-Titolo-della-manifestazione.htm ??? sarebbe meglio?
@masterx said:
3.- Usare il titolo della pagina, quello nel record del DB non è buono, perché dovresti formattare il titolo per farlo URL compatibile. Ci sono dei caratteri speciali che non si devono usare nelle url. Ricorda anche che maiuscole e minuscole in Unix sono due cose diverse...
ma io voglio che venga preso dai motori proprio il nome della manifestazione....allora, come alternativa potrei fare un LowerCase di tutto il tiolo e un replace dei caratteri "non validi" (intendi apostrofi, doppi apici e simili???)..giusto?
@masterx said:
spero che questi 3 punti ti possano servire visto che stai iniziando con questo utilissimo sistema. Ti direi anche di leggere un po' su "regular expressions", ti sarà molto utile. www.regular-expressions.info
avevo proprio preso spunto in primis da regular-expression.info, e poi da un tutorial su html.it...ma gli darò una lettura più approfondita
grazie mille o diecimila dei consigli...!!!:)
-
1.- Intendo dire che nessuna parte del url può essere flotante. Ad esempio queste URL:
www.dominio.ext/23456/questa-pagina.html
www.dominio.ext/23456/altra-pagina.htmlti portano allo stesso contenuto, perché fino al ID è utile, il resto lo usi per fare parlare l'URL, questo in un sito piccolo è controllabile, ma un sito di media taglia potresti avere grossi problemi d'ordine e sopratutto il pericolo di arrivare con 2 URL diverse allo stesso contenuto è latente.
2.- Se il sito è piccolo potresti usare una ricerca testuale anzi che col ID, è molto più lenta ma la struttura è più pulita tanto per umani che per gli spider.
3.- Al posto di usare il campo titolo nel db, usa un campo URL e crea la stringa che verrà chiamata dal URL come nome pagina.
Prova a scaricare wordpress e vedi come usano un campo text nel db per chiamare le pagine, quando si usa il modo re_write.(Se stai lavorando con un sito con tanti records ci sono dei modi per usare gli Index in mySQL e curare la performance DB/server/sito.)
ciao.
-
allora...
il rewrite che ho fatto sembra funzionare...
la pagina:lnx.sagreinitalia.it/396-Firenze-Fiera-del-Cioccolato-Artigianale.htm
viene correttamente reindirizzata su:
www. sagreinitalia.it/dettagli2.asp?ID_S=396
Ora...come devo fare per lasciare nell'Address Bar l'indirizzo "parlante" ??
ho provato la direttiva QSA dentro la RewriteRule, mi visualizza l'indirizzo "parlante" ma non fa il redirect....la RewriteRule è questa: RewriteRule ^([0-9]+)-.*.htm$ http://www.sagreinitalia.it/dettagli2.asp?ID_S=$1 [L,QSA,NC]
???:x
-
@masterx said:
1.- Una parte Jolly nelle URL non è una buona idea, perché cambiando questa parte jolly che serve a niente, andresti a creare una URL diversa con contenuto uguale, quindi contenuto duplicato.
E' il metodo in genere più usato. Anche in questo forum si usa questo metodo ad esempioL'importante poi è linkare solo e soltanto un'unica url.
Ciao
-
io ho fatto così in effetti...
cioè, la parte finale della URL è: 396-Firenze-Fiera-del-Cioccolato-Artigianale.htmla Rule mi prende l' ID (396) e pesca la notizia dal DB (SQL Server).
Duplicati non dovrei averne perchè i llink alle singole pagine li creo io prendendo semore dal DB...quindi non dovrei aver problemi di duplicazioni...come fare in modo che nella address bar compaia l'URL 396-Firenze-Fiera-del-Cioccolato-Artigianale.htm anzichè quella con l'ID ???
-
La regola è sbagliata. Risponde con un redirect 302.
Prova qualcosa del tipo:
Options +FollowSymLinks RewriteEngine on RewriteRule ^([0-9]+)(.*).htm$ dettagli2.asp?ID_S=$1
Altrimenti fatti un giro qui
-
sto impazzzendo
non appena aggiungo: ```
Options +FollowSymLinks(l'ho messo come prima instruzione) mi da errore Internal Server Error 500 :x