• Super User

    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 ?


  • User

    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.


  • Super User

    @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...!!!:)


  • User

    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.html

    ti 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.


  • Super User

    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


  • Super User

    @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 esempio 🙂

    L'importante poi è linkare solo e soltanto un'unica url.

    Ciao :ciauz:


  • Super User

    io ho fatto così in effetti...
    cioè, la parte finale della URL è: 396-Firenze-Fiera-del-Cioccolato-Artigianale.htm

    la 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 ???


  • Super User

    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
    :ciauz:


  • Super User

    sto impazzzendo :mmm:

    non appena aggiungo: ```
    Options +FollowSymLinks

    (l'ho messo come prima instruzione)
    
    mi da errore Internal Server Error 500 :x

  • Super User

    Prova senza 🙂

    Dipende dalla configurazione di Apache.


  • Super User

    fatto anche senza...ma la Address Bar continua a visualizzare la URL con l'ID anzichè la URL riscritta.....


  • Super User

    Penso sia un problema dovuto all'hosting Windows e al sottodominio con Apache. Non ci avevo fatto caso.
    Purtroppo non ho esperienza in merito.


  • Super User

    ...è 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)


  • Super User

    @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 :ciauz:


  • Super User

    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!!!


  • Super User

    ch emi dite della opzione [P] ??? da quello che mi pare di capire potrebbe fare al caso mio...o no???


  • Super User

    dai raga!!! un ultimo sforzo è quello che vi chiedo!!!
    chi mi risolve sta cosa si becca una birragratis 😉

    ricapitolando
    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€)


  • Super User

    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!!!😢


  • Super User

    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 PHP

    la 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 ???😢