- Home
- Categorie
- La Community Connect.gt
- News Ufficiali da Connect.gt
- aiuto con MOD REWRITE...
-
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€)
-
porcavacca...
allora confermo diue cose che potrebbero essere utili ad altri...aruba non permette di usare "Option FollowSymLinks"
aruba non permette di usare il flag [P] nelle RewriteRule, da quanto ne so questo necessita un altromodulo chiamato mod_proxy ch enon è abiliatato su aruba, a quanto pare..questo lo dico dopo le risposte del servizio assistenza
quindi...se qualcuno ha idea di come si possa bypassare la questione lo PREGOOOOOO di farsi avanti!!!
-
allora, forse ci siamo !!!:D
soluzione (come indirizzato da qualcuno sul forum mod_rewrite)
-creato nuova pagina PHP su hosting Linux
-incluso la vecchia pagina ASP (hosting win) in quella PHP
-fatto redirect su questa pagina PHPla pagina PHP contiene solo queste poche righe:
<body>
<?php $MioParametro = $_GET['MioParametro'];?> [ESTRAGGO IL PARAMETRO CHE PASSO DALLA QUERYSTRING E LO MEMORIZZO IN UNA VARIABILE]
<?php require_once('http://www.MioSito.it/MiaPaginaOriginale.asp?MioParametro='.$MioParametro); ?> [QUI PASSO ALLA PAGINA ASP ORIGINALE IL PARAMETRO COME LEI SE LO ASPETTA]
</body>spero di aver fatto un cosa corretta, perchè PHP non l'ho mai visto, ma in 10 minuti di guide e tutorial me la sono cavata così
l'address bar è corretta, adesso ho qualche problema dovuto al fatto che la pagina è nuova e non ha tag TITLE (ma adesso lo metto a posto), ma insomma, direi che ci sono....o quasi...
ma varrà la pena tutto sto sbattimento ???