2010-11-06 28 views
15

Ho un file .htaccess in una directory, ma non ha alcun effetto (indipendentemente da ciò che ho inserito).Perché il .htaccess non ha alcun effetto?

Il mio file apache2.conf contiene

AccessFileName .htaccess 

<Directory "/var/www"> 
    AllowOverride All 
</Directory> 

E già detto AccessFileName .htaccess ma ho aggiunto il tag directory me stesso, quindi non sono sicuro se è corretto.

Grazie per qualsiasi consiglio e richiesta di ulteriori informazioni.

Il mio tenore di .htaccess (per ora)

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule .* page.php?arg=$0 
+0

prova a mettere alcune cose fasulle in .htaccess e ad accedere alla directory a cui si applica - se ottieni un 500 quando accedi alla directory, saprai almeno che il tuo .htaccess viene analizzato. dove lo stai posizionando? – Anon

+0

È inserito nella directory che sto accedendo (In questo caso/var/www/avesta /). Ho già inserito molti file fasulli nel file .htaccess. So che non viene analizzato :) – Hubro

risposta

19

Sei su Debian, in base ai tag. Il sito predefinito, almeno su Lenny nella configurazione predefinita di apache2, è definito in/etc/apache2/sites-available/000-default. Questo valore predefinito è AllowOverride None nella sezione per la directory/var/www. Quindi, potrebbe sovrascrivere il tuo apache2.conf.

Ovviamente, è necessario assicurarsi che il sito sia abilitato. Se/etc/apache2/sites-enabled/000-default esiste ed è un link simbolico che punta a/etc/apache2/sites-available/000-default, allora il sito è abilitato. Il modo canonico per abilitare tale sito è, come root, a2ensite 000-default.

Infine, rendersi conto che se si ha accesso alla configurazione principale, per motivi di prestazioni, è necessario configurare il sito utilizzando la configurazione principale (o le configurazioni del sito in/etc/apache2/sites-available) piuttosto che in .htaccess . Vedere http://httpd.apache.org/docs/2.2/howto/htaccess.html per ulteriori spiegazioni.

+0

Grazie, ho cambiato 'AllowOverride' su All in 000-default. Ora ricevo un errore interno del server anche senza alcun argomento di riscrittura. Qualche idea? (.htaccess ora contiene solo "Options + FollowSymlinks' e' RewriteEngine on') – Hubro

+0

Ci sono diversi motivi che potrebbero accadere. Hai lo stesso errore se cancelli completamente .htaccess? Inoltre, si noti che è necessario ricaricare Apache per leggere la nuova configurazione. Di solito riavvio: come root, /etc/init.d/apache2 restart. Ma usare anche "reload" piuttosto che "restart" dovrebbe funzionare. – Andrew

+0

Ho riavviato apache, sì. Funziona con un file .htaccess vuoto, ma non appena aggiungo 'RewriteEnging on' – Hubro

Problemi correlati