.htaccess ignorado no servidor Ubuntu

6

Estou tendo um problema com um arquivo .htaccess em um servidor Ubuntu recém-instalado executando o Apache2.

O arquivo .htaccess no diretório onde os arquivos do WordPress estão localizados não está sendo levado em conta quando o servidor carrega as páginas. Não há uma instrução AllowOverride no arquivo apache2.conf, mas o padrão é All e não muda nada se eu incluir um.

Eu tentei incluir o conteúdo do arquivo .htaccess local em uma seção. Eu também tentei isso:

<Directory /var/www/mydomain.com/html>
AllowOverride All
</Directory>

Eu também tentei alterar todas as instâncias de AllowOverride em / etc / apache2 / sites-available / default (que são todos definidos como None por padrão) para All .

Mas eu não tive sorte.

Não tenho certeza de como resolver isso.

    
por Donald Jenkins 10.12.2011 / 10:46

3 respostas

3

Parece que o mod_rewrite não está ativado. Tente executar o seguinte:

a2enmod rewrite

Se o comando reportar que a reescrita foi ativada, reinicie o Apache com sudo service apache2 restart se ele diz que já está ativado, então esta não é a resposta:)

    
por Marco Ceppi 10.12.2011 / 19:15
9

Eu trabalhei o que era desde que eu abri este segmento: havia dois problemas que eu teria pensado que surgiria em qualquer configuração LAMP vanilla instalado de acordo com o Media Temple Knowledgebase article (que era o que eu usava para configurar o (ve) servidor ).

Primeiramente, foi o módulo de reescrita. Parece que meus arquivos .htaccess não estavam sendo lidos pelo servidor porque um módulo de regravação precisa ser ativado: esse parece ser o padrão em uma instalação nova, como a que acabei de realizar. Quem sabia?

Habilitar o módulo é bem simples: eu só precisava fazer um link simbólico para o arquivo rewrite.load do diretório mods-available para o diretório mods-enabled (todos encontrados, neste exemplo, no diretório apache2, em /etc/apache2 ).

Ran o seguinte:

cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/rewrite.load rewrite.load

Em segundo lugar, concluí que também preciso alterar todas as instâncias de AllowOverride em /etc/apache2/sites-available/default (que estão definidas como None por padrão) para All (consulte este artigo que explica a questão).

Finalmente, foi a questão de como aplicar as regras. Na verdade, escolhi excluir meu arquivo .htaccess e colocar todas as regras em uma seção <Directory> em http.conf (que agora é um arquivo separado ainda chamado em apache2.conf e que usarei para incluir todas as minhas personalizações) , porque definir AllowOverride para None e confiar em apache2.conf para tudo induz um aumento na velocidade, pois o servidor não precisa mais verificar um arquivo .htaccess em todos os níveis antes de carregar uma página. Em seguida, excluí a .htaccess , defina AllowOverride a None e as regras ainda são carregadas corretamente.

    
por Donald Jenkins 10.12.2011 / 20:28
1

Garanta o seguinte:

/etc/apache2/apache2.conf

#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#

AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

O Ubuntu - HTTPD - Servidor Web Apache2 pode ser útil.

- editar -

  • As alterações nos arquivos .conf não entram em vigor imediatamente, uma reinicialização sempre será necessária. Um recarregamento também pode funcionar, mas não tenho certeza em quais situações a recarga não é suficiente.

    /etc/init.d/apache2 restart

por Gerard Roche 10.12.2011 / 18:59

Tags