Devi riavviare apache per rendere effettive le regole di riscrittura in .htaccess?
-
02-07-2019 - |
Domanda
Ho inviato i miei file .htaccess ai server di produzione, ma non funzionano. Il riavvio sarebbe il prossimo passo o dovrei controllare qualcos'altro.
Soluzione
Non è necessario un riavvio non 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 error_log - ti dirà di eventuali errori in .htaccess se è in uso.
Inserire un errore di sintassi intenzionale in .htaccess è un buon controllo per assicurarsi che il file sia utilizzato - dovresti ottenere un errore 500 su qualsiasi pagina nella 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 fornirà i dettagli cruenti di quali regole di riscrittura corrispondono e come sono state gestite.
Altri suggerimenti
No :
Apache consente la gestione decentralizzata della configurazione tramite file speciali posizionati all'interno dell'albero web. I file speciali sono generalmente chiamati
.htaccess
, ma qualsiasi nome può essere specificato in AccessFileName ... Poiché i file .htaccess vengono letti su ogni richiesta, le modifiche apportate in questi file hanno effetto immediato ...
Dalla documentazione di Apache: Più comunemente, il problema è che AllowOverride non è impostato in modo tale da rispettare le direttive di configurazione. Assicurarsi di non disporre di AllowOverride None in vigore per l'ambito del file in questione. Un buon test per questo è quello di mettere spazzatura nel tuo file .htaccess e ricaricare. Se non viene generato un errore del server, è quasi certamente attivo AllowOverride None.
Solo se hai non aggiunto il modulo mod_rewrite ad Apache.
Devi solo riavviare Apache se modifichi qualsiasi Apache " .conf " file.
Ho lo stesso problema e sembra che i post di PiedPiper su AllowOverride siano stati di grande aiuto. Controlla il tuo file httpd.conf per " AllowOverride " e assicurati che sia impostato su Tutti.
In caso di riavvio .htaccess non è necessario se non funziona, è possibile che vi siano ragioni.
-
AllowOverride Non può essere impostato quale utente può impostare all'interno di httpd.conf o potrebbe essere necessario contattare l'amministratore del server.
-
Controlla il nome del file .htaccess dovrebbe essere .htaccess non htaccess.txt vedi qui per una guida su come crearne uno.
-
Prova a usare
Opzioni -Indexes
onega tutto
tipo di semplice direttiva per vedere se funziona o meno. -
cancella ogni volta la cache del browser se si ha una regola per reindirizzamenti o simili se il reindirizzamento precedente viene memorizzato nella cache, sembra che le cose non funzionino.
Cosa c'è nel tuo .htaccess? RewriteRules? Verifica che mod_rewrite sia installato e abilitato.
Altre cose? Prova a impostare AllowOverride su "all" su quella directory.