.htaccess erro "não permitido aqui" para todos para todas as instruções

4

Estou usando o Debian Lenny e o Apache 2. Alterei o arquivo .htaccess padrão com:

AllowOverride AuthConfig

Mas sempre recebo a mensagem de erro not allowed here ao colocar instruções no arquivo .htaccess .

EDITAR:

padrão do arquivo:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/

        <Directory />
                Options FollowSymLinks
                Order allow,deny
                Allow from all
                AllowOverride All
        </Directory>

        <Directory /var/www/>
                Options Indexes FollowSymLinks Includes
                #AllowOverride All
                #AllowOverride Indexes AuthConfig Limit FileInfo
                AllowOverride AuthConfig
                Order allow,deny
                Allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
                Options Indexes MultiViews FollowSymLinks 
                AllowOverride None
                Order deny,allow
                Deny from all
                Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>

</VirtualHost>

.htaccess:

#Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini)">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]

Informação do PHP:

apache2handler

Apache Version = Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch 
Apache API Version = 20051115 
Server Administrator = webmaster@localhost 
Hostname:Port = hw-linux.homework:80 
User/Group = www-data(33)/33 
Max Requests = Per Child: 0 - Keep Alive: on - Max Per Connection: 100 
Timeouts = Connection: 300 - Keep-Alive: 15 
Virtual Server = Yes 
Server Root  = /etc/apache2 
Loaded Modules =

core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic
mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user
mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_negotiation 
mod_php5 mod_rewrite mod_setenvif mod_status 
    
por andres descalzo 28.05.2011 / 22:49

3 respostas

5

Você exigirá um mínimo de AllowOverride Authconfig FileInfo Options dentro do bloco <Directory> para que o .htaccess em que você postou aqui funcione - mod_rewrite exigirá FileInfo Options e seu <FilesMatch> block requer o Authconfig .

Além disso, sua instrução "não funciona com AllowOverride All" está incorreta. Você não pode especificar um ambiente MAIS permissivo que AllowOverride All . Em caso de dúvida, comece com isso para garantir que o resto da sua configuração funcione, então reduza-a mais especificamente (por questões de segurança).

    
por 26.11.2012 / 01:43
1

Esta opção pode ser usada somente dentro de um elemento Directory . Então você tem que especificar um diretório que deve ser protegido.

    
por 28.05.2011 / 23:14
0

não permitido aqui geralmente é causado por tentar definir diretivas no arquivo .htaccess que só podem ser definidas em httpd.conf .

Primeiro tente

AllowOverride All

Na sua mais% tag <Directory> para a sua pasta www. Agora o seu .htaccess pode funcionar em sua capacidade total. Se isso resolver o problema, você poderá começar a se concentrar na segurança e diminuir o número de diretivas permitidas uma a uma.

    
por 28.05.2011 / 23:21