Visualizzazione risultati 1 fino 25 di 25

Discussione: mod_rewrite - da /home/vedi.php?id=variabile a /home/variabile

  1. #1
    Guest

    Predefinito mod_rewrite - da /home/vedi.php?id=variabile a /home/variabile

    ragazzi, se ne è parlato in tantissimi 3d, ma io non sono riuscito a risolvere, pure copiando il codice detto "giusto" in quello che mi sembrava il migliore.

    allora, io ho il mio .htaccess nella root, e devo segnalare che il file che si trova in home, chiamato vedi.php, il quale per funzionare ha bisogno di un ?id=variabilesconosciuta, diventi semplicemente home/variabilesconosciuta... non so cosa sbaglio, ma a me non sembra funzionare, magari per il percorso assoluto, non so... grazie mille anticipatamente!!! :D


    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([A-Za-z]+)$ /home/vedi.php?id=$1 [L]

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Codice PHP:
    RewriteEngine On
    RewriteBase
    /
    RewriteRule ^home/([A-Za-z]+)$ /home/vedi.php?id=$1 [L]
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    non mi va... =(

    EDIT:
    aspasp, ho sbagliato, va!!! ma posso sostituire quel A-Z maiuscolo con 0-9 se nel mio codice non ci sono mai lettere maiuscole ma forse numeri? =)
    Ultima modifica di seneca : 13-04-2009 alle ore 12.02.43

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Perchè no?
    Codice PHP:
    RewriteEngine On
    RewriteBase
    /
    RewriteRule ^home/([0-9]+)$ /home/vedi.php?id=$1 [L]
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    ho giâ corretto, scusa, errore mio... =) ma fammi capire come funziona: quando il server trova home seguito da caratteri alfanumerici minuscoli nel mio caso, va a cercare la pagina che si chiama home/vedi.php?id=... e la valuta dell'id come la mette? non ci sono variabili scritte, no? :D

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Nell'esempio del post #5 ([0-9]+) assume il valore della variabile $1 che come vedi la inserisce nel campo id del file /home/vedi.php

    In poche parole in .htaccess ogni regex assume il valore di una nuova variabile che pian piano si autoincrementano di numero.

    $1, $2, $3, ... , $10
    Ultima modifica di miki92 : 13-04-2009 alle ore 10.43.16
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Guest

    Predefinito

    ahhhh, carino... ma la $ non serviva per terminare l'url?

  8. #8
    Guest

    Predefinito

    Potrebbe essere utile anche questa discussione, che a sua volta ne linka delle altre: http://forum.it.altervista.org/php-m...agina-php.html

    Edit:
    Citazione Originalmente inviato da geckostreaming Visualizza messaggio
    ahhhh, carino... ma la $ non serviva per terminare l'url?
    In questo caso, per esempio, non c'è ne bisogno:
    Codice:
    RewriteRule ^.+-var-([0-9]*) ./pagina.php?%{QUERY_STRING}&var=$1[L]
    potrai accedere con il link:

    • /sdadfonspodg-var-2.html
    • /scrivici-qui-quello-che-vuoi-var-2
    • /altervista-hsting-web-gratis-var-2


    Che la pagina visualizzata sarà sempre: pagina?var=2

    Nel tuo caso, /home/vedi.php?id=$1, potresti fare la regola così:
    Codice:
    RewriteRule ^.+-id-([0-9]*) ./home/vedi.php?%{QUERY_STRING}&id=$1[L]
    E potrai accedere dal link che vuoi, importante che nell'url sia presente -id-#, potrai aggiungerci anche l'estensione HTML ai link, per una migliore indicizzazione
    Ultima modifica di biccheddu : 13-04-2009 alle ore 10.57.29

  9. #9
    Guest

    Predefinito

    l'avevo già letta, i temi sono un po' sempre gli stessi, ma quacosa di diverso c'è... =P

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Citazione Originalmente inviato da geckostreaming Visualizza messaggio
    ahhhh, carino... ma la $ non serviva per terminare l'url?
    Quando sta da sola si, ma questo sempre nelle regex...nella seconda parte la variabile quando è accompagnata da un numero (da 1 in su) ha valore della regex.
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Guest

    Predefinito

    okay, capito... e se metto [(a-z0-9)+] significa caratteri alfanumerici solo minuscoli, quanti ne volgio e disposti come voglio?

  12. #12
    Guest

    Predefinito

    Significa che potrai passare solo numeri e lettere minuscole

    Citazione Originalmente inviato da geckostreaming Visualizza messaggio
    l'avevo già letta, i temi sono un po' sempre gli stessi, ma quacosa di diverso c'è... =P
    Ho aggiornato il mio post, dimmi se ti è utile

  13. #13
    Guest

    Predefinito

    non è male, ma considerando che uso l'htaccess da 3 giorni è troppo complicato, e a me piace capire il funzionamento delle cose.... un ultima cosa: se il mio sito ha 6 differenti fogli di stile, che servono a far cambiare all'utente il colore del sito a piacimento, e per ricordarmi del colore che ogni utente usa uno una sessione ($_session['color']), la quale, quando la voglio far cambiare (l'utente la vuole far cambiare) uso una sintassi del tipo:

    aggiungo ?color=red, o blue, o altro al link, e poi lo tramuto in sessione con if (isset($_get[color]) == TRUE { if ($_get[color] = blue) $_SESSION[color] = blue, ecc eccc.... io vorrei far mascherare quel ?color=red

    che, attenzione, appare OCCASIONALMENTE E IN UNA QUALSIASI DELLE PAGINE...

    come posso fare con htacces ( o con un altro sistema per cambiare la sessione senza la string, grazie... =)))

  14. #14
    Guest

    Predefinito

    Cosa non hai capito?

    Comunque io pulirei un pò il codice, così:
    Codice PHP:
    switch($_GET['color'])
    {
    case
    'blue':
    $_SESSION['color'] = 'blue';
    break;

    case
    'red':
    $_SESSION['color'] = 'red';
    break;

    default:
    $_SESSION['color'] = 'colore di default';
    break;
    }
    Da quel che ho letto in internet, se tu fai un link simile: index.php?color=red verrà aggiornata la pagina, verrà appunto modificata la sessione e non dovrebbe più cambiare il colore, anche se non c'è il parametro color nell'url, ma cambierà solo se si clicca su un altro colore

  15. #15
    Guest

    Predefinito

    questo lo so e mi funziona, solo i vorrei nascondere quel ?color=red con il mod_rewrite... è possibile?

  16. #16
    Guest

    Predefinito

    Passare il valore magari in una cartella fittizia, semrpe con il metodo descritto prima, /red/ per esempio assumerà il valore di color=red

  17. #17
    Guest

    Predefinito

    si, ma non è un po' troppo complicato, e poi come si potrebbe fare?
    al massimo si potrebbe fare un redirect, ma riguardo al come fare il redirect con la memorizzazione dell'url della pagina visualizzata prima non saprei dirti...
    Ultima modifica di simogecko : 13-04-2009 alle ore 12.31.48

  18. #18
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    geckostreaming, e leggi sto benedetto regolamento del forum...
    Ciao!


    -- Aut Roma Aut Nihil!

  19. #19
    Guest

    Predefinito

    Al posto di linkare, color=red linki /red/ con accodato la pagina in cui sei.

    Esempio:
    Sono su index.php e voglio cambiare colore, linko la pagina /red/index.php al posto di /index.php?color=red.

    Poi nell'htaccess, dichiari che tutti i link preceduti da questa fittizia cartella è in realtà il colore, con una cosa simile:



    Codice:
    RewriteRule ^/([a-zA-Z0-9]*)/.([a-zA-Z0-9]*) ./index.php?%{QUERY_STRING}&color=$1[L]
    DOVREBBE ANDARE, ma non ne sono sicuro

  20. #20
    L'avatar di sliver
    sliver non è connesso Utente storico
    Data registrazione
    09-03-2001
    Messaggi
    505

    Predefinito

    ragazzi riprendo questa discussione perchè ho lo stesso problema, e non capisco dove sbaglio, l'url che voglio riscrivere è:

    o
    per cui userei:

    RewriteRule ^video/([^/]*)\.html$ /video?search=$1&submit=Go [L]
    RewriteRule ^video/([^/]*)\.html$ /video?Usearch=$1&Usubmit=Go [L]
    dove sbaglio?
    aru culu

  21. #21
    Guest

    Predefinito

    Come è il valore passato via get? Numerico, letterale o tutti e due?

    Comunque prova così:
    Codice:
    RewriteRule ^video/([A-Za-z0-9])\.html$ ./video?%{QUERY_STRING}&search=$1 [L]
    Ti conviene definire il file comunque, pèer esempio, non video ma video.php

  22. #22
    L'avatar di sliver
    sliver non è connesso Utente storico
    Data registrazione
    09-03-2001
    Messaggi
    505

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Come è il valore passato via get? Numerico, letterale o tutti e due?

    Comunque prova così:
    Codice:
    RewriteRule ^video/([A-Za-z0-9])\.html$ ./video?%{QUERY_STRING}&search=$1 [L]
    Ti conviene definire il file comunque, pèer esempio, non video ma video.php
    Numerico o letterale o entrambi, passato via get.
    Purtroppo ancora nulla
    aru culu

  23. #23
    Guest

    Predefinito

    Puoi postare il tuo htaccess?

  24. #24
    L'avatar di sliver
    sliver non è connesso Utente storico
    Data registrazione
    09-03-2001
    Messaggi
    505

    Predefinito

    certo..

    <IfModule mod_rewrite.c>
    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteRule ^video/([A-Za-z0-9])\.html$ ./video?%{QUERY_STRING}&search=$1 [L]
    RewriteRule ^video/([A-Za-z0-9])\.html$ ./video?%{QUERY_STRING}&Usearch=$1 [L]
    </IfModule>

    # # av:php5-engine
    AddHandler av-php5 .php
    il link è nella firma
    aru culu

  25. #25
    Guest

    Predefinito

    Prova così:

    Codice:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteRule ^video/([A-Za-z0-9])\.html$ video?%{QUERY_STRING}&search=$1 [L]
    RewriteRule ^video/([A-Za-z0-9])\.html$ video?%{QUERY_STRING}&Usearch=$1 [L]
    </IfModule>
    
    # # av:php5-engine
    AddHandler av-php5 .php
    Forse è quella Rewirte Cond che non andava, non lo so però, non l'ho mai utilizzata

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •