Visualizzazione dei risultati da 1 a 4 su 4

Discussione: mod_rewrite & AJAX

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401

    mod_rewrite & AJAX

    Sono alle prese con l'implementazione di alcune funzioni AJAX per un sito che utilizza mod_rewrite ed ho qualche problema con dei link relativi.

    Mi spiego meglio. Il sito è diviso in sezioni/sottosezioni e viene gestito da una pagina index.php che prende come parametro il nome della sezione ed eventuale sottosezione, ad es:

    codice:
    /index.php?s=nomesezione/nomesottosezione
    Uso mod_rewrite con questa regola:
    codice:
    RewriteRule ^(.*)/$ index.php?s=$1 [L]
    in modo che l'utente invece di scrivere quanto sopra vada su
    /nomesezione/nomesottosezione/

    index.php si preoccupa poi di includere file che stanno in altre sottodirectory a seconda della sezione richiesta

    Fino a qui tutto bene.

    Quando però vado a scrivere la mia funzione AJAX iniziano i problemi:

    se scrivo qualcosa tipo

    codice:
    url = "getInfo.php";
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    lui mi va a cercare getInfo.php nella cartella /nomesezione/nomesottosezione/ (che non esiste) e non nella directory del file contenente la funzione. Posso bypassare questo problema scrivendo:

    codice:
    url = "/percorso/che/non/voglio/mostrare/getInfo.php";
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    Il problema è che essendo questo codice in un file .js chiunque lo può aprire e vedere l'effettivo URL e nome dei file php, cosa che vorrei evitare.

    Avete consigli su come nascondere o almeno rendere molto difficile il recupero dell'URL, oppure soluzioni alternative?

    grazie mille
    nico

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    puoi scrivere una cosa di questo tipo:
    codice:
    url = "/ajax/getInfo.php";
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    e nell'htaccess:
    codice:
    RewriteRule ^ajax/(.*)/$ ajax.php?s=$1 [L]
    oppure
    codice:
    RewriteRule ^ajax/(.*)/$ /path/vera/pagina/$1 [L]

    p.s.: non garantisco il funzionamento
    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    Ciao,

    innanzitutto grazie della risposta.
    Il tuo sistema funziona, ma risolve solo in parte il problema, perchè se io scrivo

    codice:
    url = "/ajax/getInfo.php";
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    posso sempre scrivere nella barra del browser /ajax/getInfo.php e anche se la directory non esiste .htaccess porterebbe l'utente a visualizzare la pagina corretta.

    In realtà ho pensato ad un'altra soluzione che forse potrebbe bypassare il problema (ma non l'ho ancora provata): se all'inizio di ogni pagina del mio sito setto una variabile di sessione con un valore diverso (es. l'ID della sezione o qualcosa del genere) posso poi passare tutte le chiamate AJAX ad una pagina fittizia ajax.php che poi fa un include della pagina giusta a seconda della variabile di sessione.
    Che dici, potrebbe funzionare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401

    Funziona!

    Provato con l'altra soluzione che mi era venuta in mente e funziona!

    Grazie comunque dell'aiuto, alla prossima (so che ci sarà una prossima volta... sembra funzionare tutto troppo bene.... )

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.