Ho inviato i miei file .htaccess ai server di produzione, ma non funzionano. Il prossimo passo sarebbe un riavvio o dovrei controllare qualcos'altro.
Ho inviato i miei file .htaccess ai server di produzione, ma non funzionano. Il prossimo passo sarebbe un riavvio o dovrei controllare qualcos'altro.
Risposte:
Non è necessario riavviare per le modifiche a .htaccess. Qualcos'altro non va.
Assicurati che il tuo .htaccess includa la dichiarazione
RewriteEngine su
che è richiesto anche se è presente anche in httpd.conf. Controlla anche che .htaccess sia leggibile dal processo httpd.
Controlla l'errore_log: ti informerà di eventuali errori in .htaccess se viene utilizzato. Mettere un errore di sintassi intenzionale in .htaccess è un buon controllo per assicurarsi che il file sia in uso: dovresti ricevere un errore 500 su qualsiasi pagina della stessa directory.
Infine, puoi abilitare un registro di riscrittura usando comandi come i seguenti nel tuo httpd.conf:
RewriteLog "logs / rewritelog"
RewriteLogLevel 7
Il file di registro così generato ti darà i dettagli cruenti di quali regole di riscrittura corrispondono e come sono state gestite.
No :
Apache consente la gestione decentralizzata della configurazione tramite file speciali posizionati all'interno dell'albero web. I file speciali vengono solitamente chiamati
.htaccess
, ma qualsiasi nome può essere specificato nella direttiva AccessFileName ... Poiché i file .htaccess vengono letti ad ogni richiesta, le modifiche apportate a questi file hanno effetto immediato ...
Dalla documentazione di Apache: più comunemente, il problema è che AllowOverride non è impostato in modo tale che le direttive di configurazione vengano rispettate. Assicurati di non avere un AllowOverride Nessuno attivo per l'ambito del file in questione. Un buon test per questo è mettere spazzatura nel tuo file .htaccess e ricaricarlo. Se non viene generato un errore del server, quasi sicuramente hai attivato AllowOverride None.
Ho lo stesso problema e sembra che il post di PiedPiper su AllowOverride sia stato di grande aiuto. Controlla il tuo file httpd.conf per "AllowOverride" e assicurati che sia impostato su All.
In caso di .htaccess il riavvio non è richiesto se non funziona le probabili ragioni includono.
AllowOverride Potrebbe non essere impostato quale utente può impostare all'interno di httpd.conf o potrebbe dover contattare l'amministratore del server.
Controlla il nome del file .htaccess dovrebbe essere .htaccess non htaccess.txt vedi qui per la guida su come crearne uno.
Prova a usare Options -Indexes
o deny all
tipo di semplice direttiva per vedere se funziona o no.
svuota la cache del browser ogni volta se hai una regola per i reindirizzamenti o simili se il reindirizzamento precedente è memorizzato nella cache sembra che le cose non funzionino.
LogLevel alert rewrite:trace7
. Dopo aver riavviato Apache , dovresti vedere le tracce nel error.log Hope that help. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging