• User

    PHP-APACHE rewrite URL

    Salve nel mio server apache montanto su windows si presenta la seguente situazione:

    APACHE 2.2.22
    PHP 5.3.10

    **.htaccess **

    RewriteEngine on
    RewriteRule ^home/(.*)$ ./user.php?id=$1
    

    **pagina user.php **

    <?php
    echo $_GET['id'];
    ?>
    

    Facendo una richiesta di questo genere:

    sitodiprova.it/home/...ciao....

    Ottengo un output simile a ...ciao invece dovrebbe essere ...ciao....

    Sapete spiegarmi perchè i punti finali non vengono inviati come variabile GET?
    C'è qualcosa che devo modificare nel file di configurazione di apache o php?

    Grazie mille


  • Moderatore

    Bah, può essere sia apache che php il problema. Php potrebbe interpretare quei punti dopo una stringa alfanumerica come un tentativo di passare un ulteriore elemento del domain name. Apache potrebbe trimmare per le stesse ragioni quei punti.

    E' meglio se ti assicuri che apache faccia quello che deve fare, inserendo un 302 alla regola di rewrite, in modo da vedere nel browser se l'url viene riscritto correttamente.

    Se funziona, allora bisogna vedere se php ha problemi nel gestire simili stringhe.


  • User

    @paolino said:

    Bah, può essere sia apache che php il problema. Php potrebbe interpretare quei punti dopo una stringa alfanumerica come un tentativo di passare un ulteriore elemento del domain name. Apache potrebbe trimmare per le stesse ragioni quei punti.

    E' meglio se ti assicuri che apache faccia quello che deve fare, inserendo un 302 alla regola di rewrite, in modo da vedere nel browser se l'url viene riscritto correttamente.

    Se funziona, allora bisogna vedere se php ha problemi nel gestire simili stringhe.

    Inserendo la per il response code 302.
    mi reindirizza a una pagina con un url del genere:

    UTLDOMINIO/C:/www/home/user.php?id=...ciao

    Potrebbe provenire da apache l'errore?? Se passo i valori nel modo classico: user.php?id=...ciao... la variabile GET legge tutti i caratteri...

    Ti allego un esempio: 91.121.164.15/home/..ciao......


  • Moderatore

    Beh mi pare evidente dove sia l'errore. Se passi l'url da browser, php ti legge tutti i caratteri, quindi è apache il problema.

    Prova a codificare quei punti usando %2E


  • User

    Niente non lo passa neanche...