• User

    mod_rewrite non funziona

    Salve ragazzi.
    sarà la solita domanda banale ma ho fatto fior fior di ricerche e non ne vengo fuori! Voglio imparare ad usare il rewrite ma sono disperato...

    Sto facendo prove in locale su WinXp. Ho creato il file htacces.txt nella cartella dove sto facendo i test (/htdocs/rewrite/) e dentro ci ho messo queste regole:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^prova.php$ index.php

    Cerco di caricare la pagina localhost/rewrite/prova.php ma niente: non funziona. Naturalmente nella cartella esiste il file index.php, tantè che se lancio localhost/rewrite/index.php funziona.

    Nel file httpd.conf ho decommentato la riga loadmodule del rewrite_module (lanciando phpinfo() vedo il modulo tra quelli caricati).

    Ho aggiunto la riga AddModule mod_rewrite.c

    Ho settato ad ALL tutti gi override (tranne quello sulla cartella cgi-bin)

    Ho aggiunto la direttiva AccessFileName htaccess.txt

    Ho riavviato apache ed ho fatto le prove sia su firefox che su IE....

    E' un giorno che divento matto: qualcuno sà dirmi cosa posso aver sbagliato ?


  • Super User

    Devi rinominare htaccess.txt in .htaccess

    Togli punto + txt e anteponi un punto prima del nome

    .htaccess
    

  • User

    Inizialmente ho usato il nome che mi suggerisci, poi ho cambiato il nome in htaccess.txt perchè ho letto su un'altro forum che quello è il nome da usare su win. Do conseguenza ho usato la direttiva AccessFileName settata a "htaccess.txt" in httpd.conf.
    Adesso ho ridenominato il file come mi dici ed ho cambiato la direttiva AccessFileName mettendoci ".htaccess".... ma non funziona comunque.

    Non c'è qualche strumento di debug per vedere cosa non funziona ?


  • Super User

    Scusa ma per win cosa intendi ? il sistema operativo del tuo pc ?

    Se è cosi, non centra nulla ...

    Devi avere un server web tipo apache e un DB per provare in locale.


  • User

    Sì, con win intendo il sistema operativo.
    Per quanto riguarda apache, certo che l'ho caricato come ho caricato anche mysql e php. Tutto è configurato bene, tra l'altro ho già sviluppato in locale dei siti con Joomla...

    Su un altro forum avevo letto che, se apache è installato su una macchina windows, il file deve essere chiamato htaccess.txt, per questo lo avevo ridenominato (e di conseguenza avevo cambiato la direttiva AccessFileName nella configurazione di apache).

    Solo che non c'è verso di far funzionare il mod_rewrite benchè mi sembra di avere fatto tutto il necessario.


  • Super User

    Mi spiace, ma su questa cosa mi cogli impreparato, ho sempre lavorato online.

    Attendiamo che qualcuno più esperto della situazione in locale ti risponda.

    :ciauz:


  • User

    Ho risolto e, come prevedibile, mi sono sentito moooolto stupido.
    Il problema era che facevo le modifiche nel file httpd.conf nella directory "conf/default"... aprendo l'editor poi veniva caricato di default sempre lo stesso file e quindi non mi rendevo conto dell'errore...
    Scrivo la soluzione del mio problema anche se banale, spero possa tornare utile a qualche altro principiante per non perdere tempo in un'errore così stupido.

    Avrei una domanda sulle regole per il rewrite, guardate queste due regole:

    1. RewriteRule ^([^/]+)/$ index.php?text=$1
    2. RewriteRule ^([^/]+)$ index.php?text=$1

    La seconda ha un "/" di meno e mi permettere di scrivere indirizzi del tipo "miosito.it/pagina" ma non fà funzionare bene il parametro $1 passato ad index.php... La prima funziona correttamente ma mi obbliga a scrivere indirizzi del tipo "miosito.it/pagina/"... Come posso fare per non essere obbligato a mettere lo slash finale nei miei indirizzi ?

    Grazie e ciao.