Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    applicare un regola diversa per la stessa pagina

    Ciao ragazzi, vi espongo subito il mio problema, devo riscrivere un url e ho fatto così:

    #/it/test/modifica/prova.html
    RewriteRule ^([a-zA-Z]+)/test/([a-zA-Z]+)/[a-zA-Z0-9_-]+\.html$ test.php?lang=$1&action=$2 [L]


    tutto funziona perfettamente, ora però il parametro "action" alcune volte lo devo mettere alcune volte no.

    esempio:

    a volte ho questo tipo di url (non riscritta):

    test.php?lang=it&action=modifica


    a volte ho questa:

    test.php?lang=it

    Sempre della stessa pagina, come faccio con l'htaccess? ovviamente quando ometto il parametro "action" mi da un bello errore

  2. #2
    Fai 2 regole

    RewriteRule ^([a-zA-Z]+)/test/noaction/[a-zA-Z0-9_-]+\.html$ test.php?lang=$1 [L]
    RewriteRule ^([a-zA-Z]+)/test/([a-zA-Z]+)/[a-zA-Z0-9_-]+\.html$ test.php?lang=$1&action=$2 [L]

    in questo preciso ordine.

    (naturalmente non è l'unica soluzione, ma in generale ci vogliono 2 regole)
    UtèñtE non ti dirà mai come trasformare l'argilla in marmo, ma se gli chiederai come progettare una simulazione con le bacche di mirto, ti risponderà: "Versane ancora!".

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ok grazie, non si può fare tutto in una regola?


    Ti volevo chiedere un altra cosa, siccome ho molte pagine che hanno sempre la stessa struttura ma l'unica differenza è che cambia solo il nome non si può fare una cosa del genere?

    RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/[a-zA-Z0-9_-]+\.html$ $1.php?lang=$2 [L]


    ho provato ma non funziona, forse sbaglio qualcosa?


    Grazie di tutto


    M4tt86

  4. #4
    Certo che si può fare una cosa del genere... ma se la confronto con quella del precedente post hai semplicemente sbagliato i numeri dei backreferences... poi magari è meglio se usi url assoluti sulla substitution...

    RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/[a-zA-Z0-9_-]+\.html$ /$2.php?lang=$1 [L]

    Quanto alla doppia regola, non credo proprio si possa evitare... ce ne vuole una per ogni tipo di substitution... e vanno nell'ordine che ti ho messo in modo che la seconda non intercetti la prima.
    UtèñtE non ti dirà mai come trasformare l'argilla in marmo, ma se gli chiederai come progettare una simulazione con le bacche di mirto, ti risponderà: "Versane ancora!".

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ok grazie, adesso funziona tutto! sei un mito!

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.