- Home
- Categorie
- La Community Connect.gt
- News Ufficiali da Connect.gt
- aiuto con MOD REWRITE...
-
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
-
Prova senza
Dipende dalla configurazione di Apache.
-
fatto anche senza...ma la Address Bar continua a visualizzare la URL con l'ID anzichè la URL riscritta.....
-
Penso sia un problema dovuto all'hosting Windows e al sottodominio con Apache. Non ci avevo fatto caso.
Purtroppo non ho esperienza in merito.
-
...è hosting doppio (win+linux) su aruba in effetti...e le due url sono su Linux (URL Riscritta) che punta alla pagina su hosting Win (Vecchia URL)
-
@autodafe said:
...è hosting doppio (win+linux) su aruba in effetti...e le due url sono su Linux (URL Riscritta) che punta alla pagina su hosting Win (Vecchia URL)Si infatti la regola che ho scritto prima non funziona di sicuro.. Non ci stavo badando proprio al sottodominio.
Forse ti conviene chiedere lumi all'assistenza.
Ciao
-
e in effetti se faccio in modo che la regola punti ad una pagina sul sottodominio linux l'address bar visualizza la URL Corretta, ma e la regola punta al dominio su Win la URL è quella vecchia...
boh:?
grazie mille per i consigli e la pazienza!!! Thanks!!!
-
ch emi dite della opzione [P] ??? da quello che mi pare di capire potrebbe fare al caso mio...o no???
-
dai raga!!! un ultimo sforzo è quello che vi chiedo!!!
chi mi risolve sta cosa si becca una birragratisricapitolando
dalla URL lnx.miosito.it/12345-Citta-nome-della-manifestazione.htm (URL fittizia, in hosting su linux)faccio un rewrite su: www.miosito.it/dettagli.asp?IDS=12345 (URL Reale, in hosting su Win)
come fare in modo che nell'Adress Bar del Browser rimanga la URL "12345-Citta-nome-della-manifestazione.htm" e non la seconda??
dai, che se risolvo questo dilemma sono a posto !!!
(grazie€)