• User Attivo

    MOD REWRITE: Nascondere variabili nell' URL

    Ciao a tutti,
    nel mio girovagare nel web alla ricerca di informazioni sul MOD_REWRITE ho trovato un tutorial o meglio uno script on-line che trasforma gli URL dinamici in url html e fornisce anche il codice da utilizzare per il file .htacces
    Questo script è davvero molto simpatico (se un mod mi da l'OK vi posto il link così potete vederlo e utilizzarlo, se ne ritenete il caso, anche voi) e inoltre permette molte cose ed in particolare di personalizzare gli URL con l'aggiunta o la rimozioni di Keywords.

    La cosa che mi ha colpito è che permette anche di eliminare dall' URL html anche delle variabili che erano presenti nell'URL dinamico.
    Mi spiego meglio con un esempio:

    URL dinamico:

    www.mio-sito.it/directory/index.php?var1=10&var2=forum-gt

    questo script permette di trasformare questo URL dinamico in questo modo:

    www.mio-sito.it/directory/forum-gt.html

    ovvero permette di non far comparire nell' URL la variabile numerica " var1=10 ". Fino a qui tutto OK, ma poi mi è sorto un dubbio...... cioè se utilizzo un URL html di questo tipo, come faccio a passare al mio script la variabile " var1=10 "???

    Cioè se utilizzassi, ad esempio, questo URL:

    www.mio-sito.it/directory/10/forum-gt.html

    la variabile " var1=10 " è presente nell' URL e quindi riesco a passarla alllo script, mentre utilizzando questo URL:

    www.mio-sito.it/directory/forum-gt.html

    Come si fa a passare, allo script, tale variabile???


  • User Attivo

    Ciao
    Se la variabile può essere ricalcolata dallo script (tipo il numero record) puoi anche ometterla, altrimenti credo non ci siano altre soluzioni che inserirla nell'url.
    Però non sono un guru, sentiamo anche altri


  • User

    @spiadadda said:

    Ciao a tutti,
    nel mio girovagare nel web alla ricerca di informazioni sul MOD_REWRITE ho trovato un tutorial o meglio uno script on-line che trasforma gli URL dinamici in url html e fornisce anche il codice da utilizzare per il file .htacces
    Questo script è davvero molto simpatico (se un mod mi da l'OK vi posto il link così potete vederlo e utilizzarlo, se ne ritenete il caso, anche voi) e inoltre permette molte cose ed in particolare di personalizzare gli URL con l'aggiunta o la rimozioni di Keywords.

    La cosa che mi ha colpito è che permette anche di eliminare dall' URL html anche delle variabili che erano presenti nell'URL dinamico.
    Mi spiego meglio con un esempio:

    URL dinamico:

    www.mio-sito.it/directory/index.php?var1=10&var2=forum-gt

    questo script permette di trasformare questo URL dinamico in questo modo:

    www.mio-sito.it/directory/forum-gt.html

    ovvero permette di non far comparire nell' URL la variabile numerica " var1=10 ". Fino a qui tutto OK, ma poi mi è sorto un dubbio...... cioè se utilizzo un URL html di questo tipo, come faccio a passare al mio script la variabile " var1=10 "???

    Cioè se utilizzassi, ad esempio, questo URL:

    www.mio-sito.it/directory/10/forum-gt.html

    la variabile " var1=10 " è presente nell' URL e quindi riesco a passarla alllo script, mentre utilizzando questo URL:

    www.mio-sito.it/directory/forum-gt.html

    Come si fa a passare, allo script, tale variabile???

    mi fai avere l'idirizzo per torvare lo scrip cosi ci do un occhio?
    grazie


  • Super User

    ciao,
    l'eliminazione dell'id puoi farla solo se puoi ricavarlo da altre parti dell'url

    mi spiego meglio:

    /news/cellulari.html -> news/index.php?cat=cellulari
    [php]
    $cat = $_GET['cellulari'];
    $id = mysql_fetch_row(mysql_query("SELECT idcategoria FROM categorie WHERE nome='$cat'"));
    // dovuti controlli di esistenza
    // $id[0]
    [/php]
    in questo modo ti ricavi l'id a partire dal nome della categoria

    non conviene invece farlo quando il titolo potrebbe cambiare
    se io cambio
    /news/cellulari/fuori-produzione-nokia-3310.html
    in
    /news/cellulari/da-oggi-fuori-produzione-nokia-3310.html

    devo per forza fare un redirect a mano
    conviene quindi accodare l'id della notizia 😉


  • User Attivo

    @maor68 said:

    mi fai avere l'idirizzo per torvare lo scrip cosi ci do un occhio?
    grazie

    Scusa se ti rispondo solo adesso, ma solo ora mi sono accorto del tuo post.

    Comunque il link è questo:

    http://www.mod-rewrite-wizard.com/


  • User Attivo

    Ciao,

    perdonate la domanda da newbie ma il modrewrite posso farlo anche su di una singola pagina?:?
    Se la dinamica è indicizzata bene, effettuando il mod con questo tool perdo qualcosa?
    La pagina dinamica viene automaticamente convertita o comunque rimane accessibile anche con l'utl dinamico?
    Ciao

    Dario


  • Super User

    se non fai il 301 la pagina dinamica resta indicizzata
    l'url dinamico in ogni caso resta sempre raggiungibile (fin quando non elimini il 301)

    sì puoi fare il rewrite anche solo su una pagina

    ciao 🙂


  • User Attivo

    Grazie per la risposta osvi. Ho convertito tramite il sito mod-rewrite una pagina di un sito fatto con joomla da index.php?option=com_wrapper&Itemid=65 a nuovo-nome.html. Come stringa da inserire nel file .htaccess mi viene indicata la seguente:

    RewriteEngine On
    RewriteRule ^nuovo-nome.html$ /index.php?option=com_wrapper&Itemid=65

    Vorrei sapere se RewriteEngine On debbo sempre inserirlo prima di ogni RewriteRule ed un esempio pratico di un 301 da index.php?option=com_wrapper&Itemid=65 a nuovo-nome.html.

    Ho trovato un componente per joomla http://www.joomla-addons.org/components/redirect/redirect.html che fa il redirect 301, ma vedo che non effettua modifiche sul file .htaccess.

    Ti ringrazio in anticipo per la risposta.
    Ciao

    Dario


  • User

    @osvi said:

    ciao,
    l'eliminazione dell'id puoi farla solo se puoi ricavarlo da altre parti dell'url

    mi spiego meglio:

    /news/cellulari.html -> news/index.php?cat=cellulari
    [php]
    $cat = $_GET['cellulari'];
    $id = mysql_fetch_row(mysql_query("SELECT idcategoria FROM categorie WHERE nome='$cat'"));
    // dovuti controlli di esistenza
    // $id[0]
    [/php]
    in questo modo ti ricavi l'id a partire dal nome della categoria

    non conviene invece farlo quando il titolo potrebbe cambiare
    se io cambio
    /news/cellulari/fuori-produzione-nokia-3310.html
    in
    /news/cellulari/da-oggi-fuori-produzione-nokia-3310.html

    devo per forza fare un redirect a mano
    conviene quindi accodare l'id della notizia 😉

    ma quindi quando si vede miosito.eu/Azienda
    e non compare Id della pagina come è stato fatto ?

    Il tutto viene da miosito.eu/pagina.php?id=2

    Io sono riuscito a mettere miosito.eu/2/Azienda

    Si può fare o no ?

    grazie

    Cri


  • Bannato User Attivo

    A parer mio quando non viene passato l'id nell'URL riscritto è perchè si usa un altro modo per estrarre le informazioni necessarie nellapagina alla quale punta l'URL.

    Per esempio... sela pagina di atterraggio vuol mostrare tutte le caratteristiche di un'azienda estraendole dal DB, è dotata di tecnologia PHP-MYSQL, e l'indirizzo che vi punta è del tipo miosito.it/nomeazienda, è possibile che (nel caso rischioso in cui i nomi delle aziende siano tutti diversi) estrarre le informazioni anche senza l'id con una query del tipo "SELECT * FROM tabella_aziende WHERE nome='$nomeazienda'.

    Ovviamente è una query semplificata. Il nome azienda va estratto dall'url riscritto e messo nella variabile $nomeazienda

    Uno sviluppo per un'altra idea,così su due piedi potrebbe essere quello di studiare un metodo con le sessioni... ma ci dovrei pensare per dire se può essere tecnicamente fattibile.

    :ciauz:


  • User

    @buccia81 said:

    A parer mio quando non viene passato l'id nell'URL riscritto è perchè si usa un altro modo per estrarre le informazioni necessarie nellapagina alla quale punta l'URL.

    Per esempio... sela pagina di atterraggio vuol mostrare tutte le caratteristiche di un'azienda estraendole dal DB, è dotata di tecnologia PHP-MYSQL, e l'indirizzo che vi punta è del tipo miosito.it/nomeazienda, è possibile che (nel caso rischioso in cui i nomi delle aziende siano tutti diversi) estrarre le informazioni anche senza l'id con una query del tipo "SELECT * FROM tabella_aziende WHERE nome='$nomeazienda'.

    Ovviamente è una query semplificata. Il nome azienda va estratto dall'url riscritto e messo nella variabile $nomeazienda

    Uno sviluppo per un'altra idea,così su due piedi potrebbe essere quello di studiare un metodo con le sessioni... ma ci dovrei pensare per dire se può essere tecnicamente fattibile.

    :ciauz:

    Si l'avevo pensato pure io ma tipicamente si estrae il record con l'id e non dal nome che potrebbe avere apici o cose strane al suo interno.


  • Bannato User Attivo

    Certo.
    Ma se il sito è stato fatto personalmente e se si conosce esattamente il codice e la struttura del database, nonchè siamo a conoscenza del fatto che i nomi delle aziende sono univoci e non afflitti da caratteri strani... se ci sono tutti questi se...:):D ... si può fare.

    Cmq sono daccordo che non sia il modo migliore.
    Un numerino in fondo ad una stringa riscritta secondo me è lasoluzione più valida.