• User

    Riscrittura links in base ad url di provenienza.

    Buongiorno a tutti.

    Ho un problema che mi sta letteralmente facendo uscire pazzo... anche perché non sono molto pratico di htaccess.

    Vi spiego cosa vorrei ottenere.
    Poniamo il caso di accedere ad una pagina da un link strutturato come segue:

    index.php?v=test

    La pagina in questione ha dei links al suo interno che portano ad altre pagine ma, qui nasce il mio problema: come faccio a far passare la variabile "v" da quei links SENZA dover modificare il codice della pagina?

    Cioè, io vorrei che htaccess AGGIUNGESSE v=test ai links laddove, per l'appunto, la pagina richiedente abbia v = "test"; se v è diverso da "test" non deve applicare la regola.

    Non so se son stato capace di esprimere bene la mia esigenza :smile5:
    Spero possiate aiutarmi.

    Grazie di cuore.


  • Admin

    Non credo sia una cosa fattibile.

    Quello che puoi fare è beccare la get via php e se presente l'aggiungi altrimenti no.


  • User

    Ciao Juanin,

    innanzitutto grazie d'avermi risposto 🙂

    Ma quindi htaccess non riesce in nessun modo a riconoscere il link "chiamato" e riscriverlo aggiungendogli "&v=test" se presente sul link "chiamante"?


  • Admin

    Dovrei fare delle prove ma così ad occhio no.

    Con l'htaccess non puoi modificare il contenuto della pagina.


  • User

    Aspetta... forse non mi sono spiegato bene.
    Io non voglio modificare il contenuto della pagina...

    Vorrei che htaccess controllasse il link che sta per aprire una pagina e, verificato che la pagina precedente (la pagina chiamante) conteneva v=test, riscriva tale link aggiungendogli "&v=test"

    Dunque, mettiamo il caso che abbiamo due pagine: "a.php" e "b.php", sapendo che a.php contiene un link a b.php.

    Se dal browser vado su www . miosito . it/a.php e poi clicco sul link per aprire b.php, normalmente aprirà b.php (cioè andrà su www . miosito . it/b.php)... e fin qui, è tutto nella normalità!

    Ma se dal browser aggiungo all'indirizzo "?v=test" (avendo pertanto www . miosito . it/a.php?v=test) e poi clicco sul link per aprire b.php, quest'ultimo dovrà automaticamente passare a b.php il valore "v=test", in modo da avere www . miosito . it/b.php?v=test.

    htaccess dovrebbe quindi riscrivere il link chiamato aggiungendo il valore trovato sul link chiamante, solo se quel v è uguale ad un certo valore, in questo caso "test".


  • Admin

    Forse puoi farlo usando
    %{HTTP_REFERER}


  • User Attivo

    Se ho intuito correttamente l'uso che vuoi farne, prova usando le session. Nella prima pagina passi il get, fai salvare il parametro in sessione e lo verifichi nelle successive. Ho usato qualcosa del genere per abilitare o disabilitare le modalità di debug su siti in produzione..ciao!


  • User

    @Juanin said:

    Forse puoi farlo usando
    %{HTTP_REFERER}

    Ciao Juanin 🙂
    potresti farmi un esempio concreto?


  • Admin

    Ho controllato un po' la documentazione e HTTP_REFERER non fa al caso tuo perché fa match solo sul dominio.

    A questo punto credo che l'unica via sia di intercettare il query_string e applicare l'aggiunta della variabile basandoti su questa condizione.

    La logica dovrebbe essere tipo quella che segue.

    
    RewriteCond %{QUERY_STRING} ^(.*)valore(.*)$
    RewriteRule /percorso /percorso?%1valoretuo%2