Em quase todas as soluções de "Como ativar o htaccess", eles dizem que o arquivo / etc / apache2 / sites-available / default precisa ser editado. Mas não existe esse arquivo no Apache 2.4.7
Li em algum lugar que o novo arquivo padrão é 000-default.conf. Então eu editei essa e tentei adicionar a linha:
AllowOverride All
Mas o Apache2 não foi reiniciado corretamente e deu um erro. Em uma documentação do apache2, descobri que o AllowOverride é permitido apenas na <Directory>
seção. Então eu tentei adicionar isso:
<Directory "/var/www">
AllowOverride All
</Directory>
E isso parece funcionar. Mas não tenho certeza se eu deveria ter colocado / var / www lá. É uma maneira correta de fazê-lo ou meu computador explodirá de alguma forma?
apache2
configuration
.htaccess
CluelessNoob
fonte
fonte
Respostas:
tl; dr
Sim, é o caminho correto.
Mas para ser mais semântico : Sim, é a maneira correta de permitir
.htaccess
substituir todas as diretivas no/var/www
diretório.Como você descobriu,
AllowOverride
é permitido apenas naDirectory
seçãoUsando seu exemplo:
Isso está dizendo ao apache que todas as configurações podem ser substituídas nos
/var/www
subdiretórios e em todos os seus subdiretórios (recursivamente).Para um exemplo melhor, considere que você tem a seguinte configuração em seu host virtual:
E a seguinte estrutura de diretórios:
O que eu fiz aqui é criar um
.htaccess
em todos os subdiretórios do/var/www
diretório.Geralmente não deve ser assim, mas isso é apenas por uma questão de exemplo
Comparando a estrutura de diretórios com a configuração, significa que todos os
.htaccess
arquivos dentro da/var/www
pasta e seus subdiretórios, excluindo o/var/www/uploads
diretório e seus subdiretórios, podem substituir todos os tipos de diretivas.Mas
/var/www/uploads
e seus sub-diretórios só pode usar o.htaccess
arquivo para substituir osAllow
,Deny
eOrder
directivas.Nota: No apache 2.4 (disponível por padrão em 13.10 ou superior)
Allow
, as diretivasDeny
eOrder
foram substituídas por uma única diretiva denominadaRequire
.fonte
Primeiro habilite a reescrita usando este comando:
Em seguida, reinicie o apache2:
Então vá para a
sites-available
pasta:Edite o arquivo nomeado
default
e mudeAllowOverride none
paraAllowOverride All
. Existem duas linhas em que essa alteração deve ser feita.Isso fará o
.htaccess
trabalho no seu servidor VPS.Isso funcionou em um Ubuntu 12.04.5 VPS.
fonte
default
arquivo é chamado000-default.conf
e não contém aAllowOverride None
linha.000-default.conf
e não é possível adicionarAllowOverride None
aqui, se você recarregar apache erro dar.htaccess
, é melhor usá-lasAllowOverride FileInfo
. Embora o FileInfo já inclua um grande conjunto de diretivas, você ainda estaria impedindo que muitas diretivas fossem substituídas.No meu caso, funcionou assim:
tive que adicionar as seguintes linhas:
Então fica assim:
fonte
Aqui está um trecho de como ativar o htaccess no Apache 2.4 sem alterar a configuração padrão:
fonte