Newsgroup: it.comp.os.linux.sys
Titolo: Problema con .htaccess ignorato

Scenario: Apache/1.3.26 su debian.
# vi /etc/apache/httpd.conf
[...]
NameVirtualHost 192.168.1.205
<VirtualHost 192.168.1.205>
    ServerName test
    DocumentRoot /var/www
    <Location />
        AuthUserFile /etc/apache/.pwd
        AuthGroupFile /dev/null
        AuthType Basic
        AuthName "Restricted Directory"
        <LimitExcept POST>
            require user bar
        </LimitExcept>
    </Location>
    <Location /foo>
        AllowOverride All
    </Location>
</VirtualHost>
Quindi, per entrare in / (eccetto che per eseguire un POST) devo essere bar;
la directory /foo puo' alterare queste impostazioni a suo gusto usando un
.htaccess.
Nella directory /var/www/foo inserisco
# vi /var/www/.htaccess
AuthUserFile /etc/apache/.pwd
AuthGroupFile /dev/null
AuthType Basic
AuthName "Restricted Directory"
<LimitExcept POST>
    require user foo
</LimitExcept>
Quindi per entrare in /foo DOVREI essere foo.
Cosa succede: per entrare nella directory foo devo *comunque* identificarmi
come utente bar!!!
Se pero':
# vi /etc/apache/httpd.conf
[...]
NameVirtualHost 192.168.1.205
<VirtualHost 192.168.1.205>
    ServerName test
    DocumentRoot /var/www
    <Location />
        AuthUserFile /etc/apache/.pwd
        AuthGroupFile /dev/null
        AuthType Basic
        AuthName "Restricted Directory"
        <LimitExcept POST>
            require user bar
        </LimitExcept>
    </Location>
    <Location /foo>
        #AllowOverride All
        AuthUserFile /etc/apache/.pwd
        AuthGroupFile /dev/null
        AuthType Basic
        AuthName "Restricted Directory"
        <LimitExcept POST>
            require user foo
        </LimitExcept>
    </Location>
</VirtualHost>
Ecco che ottengo quello che voglio.
In pratica, il .htaccess viene bellamente ignorato...
Ho scordato qualcosa di banale?
Ciaotutti,
*
-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

 Con o senza "Allowoverride All" e' uguale, l'htaccess viene ignorato.
verificato che .htaccess sia *leggibile* da apache?
Verificato lo stato dello statement AccessFileName?
-- 
cat: .signature: No such file or directory

 Verificato lo stato dello statement AccessFileName?
Yep. Aggiungo...
Questo funziona:
# vi httpd.conf
[...]
NameVirtualHost 192.168.1.205
<VirtualHost 192.168.1.205>
    ServerName test
    DocumentRoot /var/www
    #<Location />
    #    AuthUserFile /etc/apache/.pwd
    #    AuthGroupFile /dev/null
    #    AuthType Basic
    #    AuthName "Restricted Directory"
    #    <LimitExcept POST>
    #        require user bar
    #    </LimitExcept>
    #</Location>
    <Directory /var/www/foo>
        AllowOverride All
    </Directory>
</VirtualHost>
Questo no:
# vi httpd.conf
[...]
NameVirtualHost 192.168.1.205
<VirtualHost 192.168.1.205>
    ServerName test
    DocumentRoot /var/www
    <Location />
        AuthUserFile /etc/apache/.pwd
        AuthGroupFile /dev/null
        AuthType Basic
        AuthName "Restricted Directory"
        <LimitExcept POST>
            require user bar
        </LimitExcept>
    </Location>
    <Directory /var/www/foo>
        AllowOverride All
    </Directory>
</VirtualHost>
In pratica, quel <Location /> fa si' che le impostazioni del .htaccess vengano
ignorate, a prescindere dagli AllowOverride impostati sulla directory o sulla
location.
Ho provato anche a infilarci un AllowOverride All, nel caso l' AllowOverride
None implicito si propagasse forzatamente a tutte le directory figlie, ma non
e' cosi'.
Non so se chiamarlo bug o feature... Credo la prima, comunque.
Me ne sono accorto su una macchina di produzione e ho risolto infilando i
parametri di autenticazione nell'httpd.conf; siccome pero' ho altri vincoli di
sicurezza impostati tramite .htaccess in varie parti di un altro sito sulla
stessa macchina ho iniziato a fare un po' di prove su una macchina di test. I
risultati sono stati abbastanza sconcertanti...


 *
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it