Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    modrewrite x principianti

    Ciao a tutti... ho già letto in giro diversa documentazione senza mai capire veramente come funziona... quindi provo a chiedere a voi, magari qualcuno ha la pazienza e la capacità di farmi capire.

    Navigando si incontrano spesso sito con indirizzo di questo tipo:

    http://www.sito.com/it/arredamento.html

    se si va a guardare il codice della pagina si trova che ogni link è fatto in questo modo:

    XXX

    ...io vorrei capire come si fa... non riesco a capirlo
    (mi servirebber esempi pratici e moltooo semplici)

    in un sito php ... gli url sono formati da una serie di variabili.. esempio:

    http://www.sito.it/index.php?dpr=pro...p=4&pz=100.000

    ho 2 domande quindi....

    1. come va quella roba piena di variabili a diventare una cosa simile a questa?
    http://www.sito.com/it/arredamento.html

    2. come mai nel codice della pagina i link dell'esempio sono sempre nello stesso formato? come si fa a crearli in quel modo?.... cioè in una classica pagina php con una ricerca.. c'è un form con select.. ecc.. che vanno a formare l'url con le variabili.. come si fa a crearlo senza variabili ma nella versione pulita? ?_?

    spero che qualcuno possa chiarirmi le idee... non so da che parte iniziare e non ho ancora trovato un esempio che mi abbia chiarito come si fa...

    grazie a tutti

  2. #2
    1. quella roba piena di variabili e' un URL, e tutto cio' che si trova dopo il ? si chiama query string. La query string contiene variabili sotto forma di coppie chiave-valore, che in altre parole si chiamano variabili di tipo GET. Queste variabili, in PHP, le trovi all'interno dell'array $_GET.
    Di solito per trasformare un URL "sporco" (senza query string) in un URL pulito (con query string) si usa il modulo mod_rewrite del server apache. In pratica consiste in un file, chiamato .htaccess, che di solito si piazza nella root del proprio web server, ed al suo interno si mettono una serie di regole, chiamate rewrite rules, che letteralmente riscrivono l'URL sporco. In parole povere, tu (webmaster) hai l'URL con le variabili che ti servono, mentre gli utenti in cima nella barra degli indirizzi del browser vedono l'URL pulito.
    La pratica dell'url rewriting e' utile per il SEO (search engine optimization), l'ottimizzazione per i motori di ricerca (tipo Google).

    2. se hai un form e non vuoi mostrare le tue variabili al mondo intero ti basta usare le richieste POST invece che GET. In pratica, nel tuo form, dichiari l'attributo method in questo modo:

    codice:
    <form method="POST">
    Dopo aver fatto il submit del form troverai tutte le tue variabili dentro all'array $_POST.

    Spero di esserti stato di aiuto, se hai altre domande chiedi pure.

  3. #3
    Originariamente inviato da Simo990
    1..... In pratica consiste in un file, chiamato .htaccess, che di solito si piazza nella root del proprio web server, ed al suo interno si mettono una serie di regole, chiamate rewrite rules, che letteralmente riscrivono l'URL sporco. .......

    2. se hai un form e non vuoi mostrare le tue variabili al mondo intero ti basta usare le richieste POST invece che GET. In pratica, nel tuo form, dichiari l'attributo method in questo modo:

    codice:
    <form method="POST">
    Dopo aver fatto il submit del form troverai tutte le tue variabili dentro all'array $_POST.

    Spero di esserti stato di aiuto, se hai altre domande chiedi pure.
    Innanzitutto grazie per la risposta... ma i miei dubbi rimangono.

    1. Mi piacerebbe vedere un esempio pratico... in cui

    un url con query string tipo: http://www.sito.it/index.php?dpr=pr...&pz=100.000

    diventa un url pulito per seo tipo: http://www.sito.com/it/arredamento.html

    2. visto che un test di modrewrite ho già tentato di farlo

    questo: RewriteRule ^([\d]+)$ site/index.php?id=$1&idu=$1

    che praticamente fa in modo che se scrivo nel browser: www.sito.it/1
    lui mi carica la pagina www.sito.it/site/index.php?id=1&idu=1

    mi chiedevo però come si fa... a farlo testuale...
    mi spiego meglio, nei siti che vedo in giro.. si vedono url puliti del tipo:

    http://www.sito.com/it/arredamento.html

    cioè senza numeri o quasi... ma letteralmente testuali.

    visto che sotto ci sarà un DB.. e che solitamente nei DB le where delle query sono fatte attraverso i vari ID delle tabelle... mi chiedevo come fanno a trasformarlo in formato testuale.

    SE vedi il mio esempio.. io ho provato... e trasformo un URL con query string in qualcosa di più pulito... ma per forza di cose mantendo il "valore numerico" della variabile...
    vorrei capire come fanno gli altri a trasformarla in testo.. cioè come passano dall'ID di tabella al valore.

    Riprendendo l'esempio di prima...posso immaginare che:

    http://www.sito.com/it/arredamento.html

    in origine fosse qualcosa del tipo:

    http://www.sito.com/index.php?lingua=1&prodotto=34

    3. oltre a questo.... mi chiedevo come come fanno in questi siti a gestire la questione URL all'interno della pagina php.

    come ti dicevo nell'esempio: XXX

    anche qui il problema è sempre quello.. nelle pagine php che si vanno a creare, solitamente si fa una select da DB.. si estraggono i dati e si formano i vari link sulla pagina...che però hanno sempre una forma del tipo:

    http://www.sito.com/index.php?lingua=1&prodotto=34

    ...mi chiedevo come fanno ad avere la forma "pulita".

    La questione del form... di inviare i dati in POST... semplicemente non mostra le variabili, ma non le riscrive... io volevo capire invece come fanno in questi siti.. a riscriverle.

    Spero di esser stato chiaro, se hai/avete domande.. sono qui...
    Se possibile se riuscite a farmi qualche esempio semplice pratico mi sarebbe utile.

    Grazie a tutti

  4. #4
    Innanzitutto grazie per la risposta... ma i miei dubbi rimangono.

    1. Mi piacerebbe vedere un esempio pratico... in cui

    un url con query string tipo: http://www.sito.it/index.php?dpr=pr...&pz=100.000

    diventa un url pulito per seo tipo: http://www.sito.com/it/arredamento.html
    Il seguente e' un esempio pratico in cui abbiamo un URL di partenza di questo tipo (con 2 variabili):

    http://sito.com/index.php?lang=it&page=arredamento

    E vogliamo ottenere il suo corrispettivo "pulito":

    http://www.sito.com/it/arredamento.html

    Ecco come potremmo fare via mod_rewrite:

    codice:
    RewriteEngine On
    RewriteRule ^sito\.com/index\.php?lang=(.*)&page=(.*)/?$ sito.com/$1/$2.html
    2. visto che un test di modrewrite ho già tentato di farlo

    questo: RewriteRule ^([\d]+)$ site/index.php?id=$1&idu=$1

    che praticamente fa in modo che se scrivo nel browser: www.sito.it/1
    lui mi carica la pagina www.sito.it/site/index.php?id=1&idu=1

    mi chiedevo però come si fa... a farlo testuale...
    mi spiego meglio, nei siti che vedo in giro.. si vedono url puliti del tipo:

    http://www.sito.com/it/arredamento.html

    cioè senza numeri o quasi... ma letteralmente testuali.

    visto che sotto ci sarà un DB.. e che solitamente nei DB le where delle query sono fatte attraverso i vari ID delle tabelle... mi chiedevo come fanno a trasformarlo in formato testuale.

    SE vedi il mio esempio.. io ho provato... e trasformo un URL con query string in qualcosa di più pulito... ma per forza di cose mantendo il "valore numerico" della variabile...
    vorrei capire come fanno gli altri a trasformarla in testo.. cioè come passano dall'ID di tabella al valore.

    Riprendendo l'esempio di prima...posso immaginare che:

    http://www.sito.com/it/arredamento.html

    in origine fosse qualcosa del tipo:

    http://www.sito.com/index.php?lingua=1&prodotto=34
    Hai immaginato bene. Le variabili infatti sono 2, come nell'esempio che ti ho fatto sopra. Ma il fatto e' che gli ID delle tabelle si possono nascondere tranquillamente. Come si fa? Naturalmente dipende da tanti fattori (es. il linguaggio server-side che usi e la tipologia di sito da sviluppare), ma il meccanismo di base e' sempre quello: il client chiede, e il server risponde.
    Prendendo sempre come esempio l'URL:

    http://www.sito.com/it/arredamento.html

    Io (server) capisco che il client vuole vedere la pagina dell'arredamento in italiano, e agisco di conseguenza. Afferrato il concetto?

    3. oltre a questo.... mi chiedevo come come fanno in questi siti a gestire la questione URL all'interno della pagina php.

    come ti dicevo nell'esempio: XXX

    anche qui il problema è sempre quello.. nelle pagine php che si vanno a creare, solitamente si fa una select da DB.. si estraggono i dati e si formano i vari link sulla pagina...che però hanno sempre una forma del tipo:

    http://www.sito.com/index.php?lingua=1&prodotto=34

    ...mi chiedevo come fanno ad avere la forma "pulita".
    Non e' vero che gli URL hanno sempre una forma di quel tipo. Tu (webmaster) un URL puoi farlo come ti pare. Ad esempio un URL cosi'

    http://example.com/it/?section=abbig...ex=uomo&page=2

    Puoi tranquillamente scriverlo cosi'

    http://example.com/it/abbigliamento/scarpe/uomo/2

    Ed e' sicuramente meglio se lo fai come quest'ultimo perche' si legge meglio.
    Pero' e' ovvio che DEVI sapere come e' strutturato il tuo URL (cosa non obbligatoria nel primo caso).
    Per esempio devi sapere che prima c'e' la lingua, poi la section, poi la category, poi sex, e infine page. E deve essere sempre cosi', altrimenti non sai come gestire la richiesta e non puoi servire il contenuto giusto al client.

    Giusto per rendere bene l'idea, tu un URL puoi farlo anche cosi':

    http://example.com/it. %24blabla.LoL.aspx .php.@abbigliamento@scarpe @uomo?pagina=BO!#/eheh/xD/???@

    Ovviamente non ha senso, eppure se tu agisci bene lato PHP e rendi il server in grado di interpretare questa (assurda) richiesta... bene!

    Altrimenti restituisci il classico 404.


    La questione del form... di inviare i dati in POST... semplicemente non mostra le variabili, ma non le riscrive... io volevo capire invece come fanno in questi siti.. a riscriverle.
    Non ho capito...
    Riscriverle in che senso?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.