Visualizzazione risultati 1 fino 25 di 25
Like Tree3Likes
  • 1 Post By dreadnaut
  • 1 Post By dreadnaut
  • 1 Post By dreadnaut

Discussione: Redirect della sola prima parte di un url.

  1. #1
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito Redirect della sola prima parte di un url.

    Avrei necessità di fare un redirect per l'url:

    /articoloObj.php

    ma vorrei che non avesse effetto sugli url che iniziano con l'url precedente, per esempio:

    /articoloObj.php?articolo=3277

    Leggendo in rete avevo capito che questo avrebbe dovuto funzionare:

    RedirectMatch 301 ^/articoloObj.php$ /Inesistente.htm

    ma non funziona, tutti gli url che iniziano con /articoloObj.php, vengono comunque reindirizzati....

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Ma... se lo script PHP, quando viene chiamato senza parametri, redirezionasse a inesistente.htm?

  3. #3
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Ma... se lo script PHP, quando viene chiamato senza parametri, redirezionasse a inesistente.htm?
    Andrebbe benissimo, solo non lo so fare, nè so dove andare a pescare il giusto file php da modificare....

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Mmmmh... pensavo che il file giusto fosse articoloObj.php, ma non conosco il tuo sistema.

    Puoi redirezionare con la funzione header().

    Codice PHP:
    header('Location: https://luoghidasogno.altervista.org/inesistente.htm');
    die();

  5. #5
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Mmmmh... pensavo che il file giusto fosse articoloObj.php, ma non conosco il tuo sistema.

    Puoi redirezionare con la funzione header().

    Codice PHP:
    header('Location: https://luoghidasogno.altervista.org/inesistente.htm');
    die();
    Grazie.
    Può essere che sia il file articoloObj.php quello in cui si potrebbe inserire il comando header, ma temo che bisogna inserirlo con un if che specifichi che il valore dei parametri sia nullo. In effetti avevo già provato ad inserire un header simile al tuo nel file in questione, ma il risultato era stato che tutti gli articoli del sito vengono reindirizzati a inesistente.htm.... Io però non avevo messo il parametro die, non so se possa fare diffrenza, provo quindi ad inserirlo e vedere se cambia qualcosa....

  6. #6
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Ho provato aggiungendo il die, succede la stessa cosa, tutte le pagine del sito vengono reindirizzate ad inesistente.htm....

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da luoghidasogno Visualizza messaggio
    ma temo che bisogna inserirlo con un if che specifichi che il valore dei parametri sia nullo.
    Decisamente: se vuoi che la redirezione avvenga solo quando non ci sono parametri... ci dev'essere un pezzo di codice che controlli che non ci siano parametri.

    I parametri arrivano allo script nella variable $_GET, ed hai a disposizione la funzione empty()

  8. #8
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Decisamente: se vuoi che la redirezione avvenga solo quando non ci sono parametri... ci dev'essere un pezzo di codice che controlli che non ci siano parametri.

    I parametri arrivano allo script nella variable $_GET, ed hai a disposizione la funzione empty()
    Grazie, vedo se riesco a capirci.
    Comunque mi sembra impossibile che in htaccess non ci sia un modo di considerare solo la prima parte dell'url.

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    È probabile che Redirect e RedirectMatch prendano in considerazione il percorso della pagina, ma non i parametri che questa riceve. Dal mio punto di vista la cosa per me ha senso, perché se ho spostato uno script, voglio che sia eseguito nello stesso modo nella nuova posizione.

    Il tipo di "traduzione" che stai cercando di fare secondo me è qualcosa da gestire via RewriteRule, o meglio ancora in PHP dove hai più controllo.

  10. #10
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Decisamente: se vuoi che la redirezione avvenga solo quando non ci sono parametri... ci dev'essere un pezzo di codice che controlli che non ci siano parametri.

    I parametri arrivano allo script nella variable $_GET, ed hai a disposizione la funzione empty()
    Grazie!
    ce l'ho fatta, inserendo il codice:

    if (empty($idarticolo)) {
    header('Location: /Inesistente.htm');
    }

    Adesso funziona!

  11. #11
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    È probabile che Redirect e RedirectMatch prendano in considerazione il percorso della pagina, ma non i parametri che questa riceve. Dal mio punto di vista la cosa per me ha senso, perché se ho spostato uno script, voglio che sia eseguito nello stesso modo nella nuova posizione.

    Il tipo di "traduzione" che stai cercando di fare secondo me è qualcosa da gestire via RewriteRule, o meglio ancora in PHP dove hai più controllo.
    In realtà ho provato anche con Rewriterule e non funzionava lo stesso.
    Ho l'impressione che nel mio htaccess non vengano presi in considerazione i caratteri Regex, come se dovessero essere abilitati, questo perchè anche le "" e gli altri tentativi che ho fatto per inserire spazi negli url non funzionavano.

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Per quanto il problema sia fastidioso, è assai improbabile che il tuo, e solo il tuo .htaccess sia letto diversamente dal sistema. Il mistero potrebbe essere svelato leggendo tutta la documentazione, ma la vita è breve!

    Detto questo, quegli errori 403 sono assai curiosi, e sarebbe interessante mettere assieme un esempio minimo che @Alemoppo potrebbe passare ai tecnici come punto di partenza per investigare. E magari il lavoro per construire un esempio minimo ci porta a capire qual'è il problema, senza neanche l'intervento dei tecnici

  13. #13
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Beh in effetti non pensavo che il mio fosse diverso, solo che ci fosse qualche settaggio di abilitazione per esempio che impedisse di far funzionare le Regex.
    Quello che posso fare è intanto allegare l'ultima versione del mio Htaccess:
    https://drive.google.com/file/d/1eaf...ew?usp=sharing
    Per quanto riguarda gli esempi non saprei, tanto più che gli errori 403 adesso non si vedono, in quanto redirezionati su Inesistente.htm.
    In ogni caso le pagine che davano errore 403 sono quelle che contengono spazi nell'url (url che in ogni caso non esistono più in quanto sono relativi al vecchio sito) per esempio queste:
    Https://luoghidasogno.altervista.org...a/Dolomiti/Val Badia/Corvara.htm
    Https://luoghidasogno.altervista.org/Tracce GPS/2021-10-20 - Pis.gpx

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Per quanto il problema sia fastidioso, è assai improbabile che il tuo, e solo il tuo .htaccess sia letto diversamente dal sistema. Il mistero potrebbe essere svelato leggendo tutta la documentazione, ma la vita è breve!

    Detto questo, quegli errori 403 sono assai curiosi, e sarebbe interessante mettere assieme un esempio minimo che @Alemoppo potrebbe passare ai tecnici come punto di partenza per investigare. E magari il lavoro per construire un esempio minimo ci porta a capire qual'è il problema, senza neanche l'intervento dei tecnici

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,536

    Predefinito

    Visitando:

    Codice:
    https://luoghidasogno.altervista.org/Montagna/Dolomiti/Val%20Badia/Corvara.htm
    https://luoghidasogno.altervista.org/Tracce%20GPS/2021-10-20%20-%20Pis.gpx
    Vedo la pagina inesistente.

    Hai quindi altri problemi "riproducibili" su .htaccess?

    Se sì, una primissima prova che potresti fare è:
    • Copiare il contenuto del file .htaccess in un tuo file di testo del PC
    • Eliminare il file .htaccess su AlterVista
    • Ricreare il file .htaccess (ad esempio semplicemente da qui -> Modifica sorgente .htaccess (Avanzato))
    • Incollare il contenuto precedentemente copiato e salvare


    Ciao!

  15. #15
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Ok, ho fatto un paio di prove con un file .htaccess minimo ed ho notato questo: se l'URL contiene uno spazio, e viene applicata una RewriteRule, AlterVista risponde con un errore 403.

    Nel dettaglio:
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(MMM.*)$  test.php?path=$1 [L]
    Con questi risultati:
    /esiste.html → vedo la pagina
    /nonesiste.html → vedo un errore 404
    /MMM-senza-spazio → vedo test.php
    /MMM con spazio → errore 403
    /MMM%20con%20spazio → errore 403

    [edit, vedi #23]

    /MMM+con+spazio → vedo test.php
    Ultima modifica di dreadnaut : 29-06-2024 alle ore 18.54.12
    GraphOGLRisorse likes this.

  16. #16
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Ok, ho fatto un paio di prove con un file .htaccess minimo ed ho notato questo: se l'URL contiene uno spazio, e viene applicata una RewriteRule, AlterVista risponde con un errore 403.

    Nel dettaglio:
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(MMM.*)$  test.php?path=$1 [L]
    Con questi risultati:
    /esiste.html → vedo la pagina
    /nonesiste.html → vedo un errore 404
    /MMM-senza-spazio -> vedo test.php
    /MMM con spazio -> errore 403
    /MMM%20con%20spazio -> errore 403
    direi che è più o meno quello che succede anche a me...

  17. #17
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Visitando:

    Codice:
    https://luoghidasogno.altervista.org/Montagna/Dolomiti/Val%20Badia/Corvara.htm
    https://luoghidasogno.altervista.org/Tracce%20GPS/2021-10-20%20-%20Pis.gpx
    Vedo la pagina inesistente.

    Hai quindi altri problemi "riproducibili" su .htaccess?

    Se sì, una primissima prova che potresti fare è:
    • Copiare il contenuto del file .htaccess in un tuo file di testo del PC
    • Eliminare il file .htaccess su AlterVista
    • Ricreare il file .htaccess (ad esempio semplicemente da qui -> Modifica sorgente .htaccess (Avanzato))
    • Incollare il contenuto precedentemente copiato e salvare


    Ciao!
    Ciao, direi che almeno al momento non ho altri problemi in htaccess e questo comunque lo dò come risolto, anche se non proprio nel modo che avrei voluto, ma va bene comunque, adesso non ci sono più pagine rilevate da google che danno errore, e quindi va bene così. Anche perchè ho un altro problema piuttosto difficile da risolvere, anche se sono sicuro che sia risolvibile, ma per me che so poco e niente della sintassi php è uno scoglio veramente grosso, tanto che mi azzardo ad illustrarlo brevemente qui, anche se non è il forum giusto, ma ho visto che di php ne sapete molto.....
    In un file del mio sito ho questa riga:
    document.getElementById('gallerydiv').style.height ='100%';
    e in questa riga devo sostituire la costante 100% con una percentuale variabile,
    tale percentuale variabile è il prodotto della funzione count($foto)*2,5, risultato che poi andrebbe trasformato
    in % non ho idea se semplicemente dividendo per 100 o considerandolo come una stringa a cui concatenare il simbolo %..
    Mi scuso per l'OT, ma se il problema può essere interessante e non una cosa di poco conto, provo a riportarlo nel forum appropriato....

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,536

    Predefinito

    Il problema .htaccess l'ho riprodotto anche io e l'ho segnalato.

    Riguardo al tuo problema con PHP/Javascript, la percentuale rispetto quale totale dovresti calcolarlo? Puoi spiegare meglio?
    Puoi mostrare anche il codice PHP che genera quella riga javascript?

    Ciao!

  19. #19
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Il problema .htaccess l'ho riprodotto anche io e l'ho segnalato.

    Riguardo al tuo problema con PHP/Javascript, la percentuale rispetto quale totale dovresti calcolarlo? Puoi spiegare meglio?
    Puoi mostrare anche il codice PHP che genera quella riga javascript?

    Ciao!
    Questo è lo script completo:
    <script>

    function showGallery(){

    document.getElementById('minus').style.display='in line';

    document.getElementById('plus').style.display='non e';

    document.getElementById('gallerydiv').style.height ='100%';

    }

    Questo il link al file che lo contiene:
    https://drive.google.com/file/d/1qvc...ew?usp=sharing

    il mio problema in concreto sarebbe che la riga che vorrei modificare assegno lo spazio per le miniature delle foto della gallery, settato al 100% così come è nella maggior parte degli articoli non c'è spazio per tutte le foto, così com'è lo spazio corrisponde a 7 righe con ciascuna 6 foto. Ho provato quindi a cambiare il 100% in 650% e lo spazio così diventa sufficiente anche per gli articoli con più foto, ma in quelli con meno foto le righe vengono distanziate eccessivamente. Quindi ho bisogno, o di raggruppare le righe, lasciando magari lo spazio vuoto in fondo, ma non so come fare, o di inserire una formula variabile, che prima ho indicato un pò troppo semplicisticamente in: count($foto)*2.5, in realtà la formula che mi da la percentuale corretta dovrebbe essere (sfruttando la funzione ceil php) qualcosa del genere: ceil(count($foto)*2,5/15)*15.
    Spero di essere stato un poco più chiaro, ma, purtroppo mi è difficile, perchè di php ne so poco e il codice in questione non l'ho scritto io....

  20. #20
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Direi che è la galleria in basso in pagine come questa.

    Se ti serve per espandere la galleria, sei sicuro che non ti serva invece il valore auto, che lasciare che il browser espanda il contenuto quanto necessario?

    Ma a quel punto, magari potresti usare <details> e <summary>, ed evitare JavaScript del tutto.

    Bonus: display: grid potrebbe anche salvarti un sacco di codice per allineare le foto.

    Se ti servono più dettagli, forse si, conviene aprire nuove discussioni nelle relative sezioni.
    luoghidasogno likes this.

  21. #21
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    sì, è la galleria in basso che dici tu, dove se si clicca sul +, adesso che ho cambiato la % da 100 a 650, vengono visualizzate tutte le foto, ma eccessivamente distanziate, cosa che diventa ancora peggio in articoli con ancora meno foto.
    Nel frattempo mi è venuta in mente una soluzione, anche se piuttosto ripetitiva, cioè di fare uno script per ogni % che mi serve, sarebbero circa una cinquantina di script.... Riguardo agli altri suggerimenti proverò a vedere se riesco ad applicarli, certo che auto mi andrebbe bene, sempre che si possa mettere nello script al posto della percentuale, nei prossimi giorni provo.
    Grazie!
    Ultima modifica di luoghidasogno : 29-06-2024 alle ore 00.11.38 Motivo: + aggiunto [/quote]

  22. #22
    luoghidasogno non è connesso Utente giovane
    Data registrazione
    11-11-2007
    Messaggi
    46

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Direi che è la galleria in basso in pagine come questa.

    Se ti serve per espandere la galleria, sei sicuro che non ti serva invece il valore auto, che lasciare che il browser espanda il contenuto quanto necessario?

    Ma a quel punto, magari potresti usare <details> e <summary>, ed evitare JavaScript del tutto.

    Bonus: display: grid potrebbe anche salvarti un sacco di codice per allineare le foto.

    Se ti servono più dettagli, forse si, conviene aprire nuove discussioni nelle relative sezioni.
    Grazie moltissime, ha funzionato con Auto!

  23. #23
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Però se lo spazio é sostituito da percent enconding "+" (invece di RFC 3986, spazio convertito con %20).
    Io vedo la pagina con stato http 200 e errore PHP della pagina.

  24. #24
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Saggia scoperta, @Darbula! Confermo, ed ho aggiornato la tabella sopra

    In più, ho provato anche in locale Linux (WSL) + Apache/2.4.58 ed ottengo lo stesso comportamento. A questo punto, sembra qualcosa che caratterizza il server web, più che Altervista in particolare.
    Ultima modifica di dreadnaut : 29-06-2024 alle ore 18.40.50
    darbula likes this.

  25. #25
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Ed infine, la causa: il comportamento è stato introdotto in un recente fix di sicurezza, più dettagli su Stack Overflow.

    Una possibile soluzione è aggiungere il parametro B alla RewriteRule che causa il problema. Ad esempio:
    Codice:
    RewriteRule  ^(MMM.*)$  test.php?request=$1  [B]
    Senza il flag B
    ✅ /MMM-senza-spazio → test.php riceve MMM-senza-spazio
    ❌ /MMM con spazio → errore 403
    ❌ /MMM%20con%20spazio → errore 403
    ✅ /MMM+con+spazio → test.php riceve MMM con spazio

    Con il flag B, il comportamento cambia in
    ✅ /MMM-senza-spazio → test.php riceve MMM-senza-spazio
    ✅ /MMM con spazio → test.php riceve MMM con spazio
    ✅ /MMM%20con%20spazio → test.php riceve MMM con spazio
    ⚠️ /MMM+con+spazio → test.php riceve MMM+con+spazio, il + non viene convertito
    Ultima modifica di dreadnaut : 29-06-2024 alle ore 18.58.07

Regole di scrittura

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