- Home
- Categorie
- Coding e Sistemistica
- Hosting, Server e Domini
- PHP-APACHE rewrite URL
-
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
-
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.
-
@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......
-
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
-
Niente non lo passa neanche...