Desculpe! Eu tinha o apache configurado para agora permitir a substituição do .htaccess. : (
Eu executo o Apache no Mac OS X (XAMPP) para um site que usa o .htaccess para ter URLs como "domain.com/site/section/etc".
O problema é que o esquema de URL não está funcionando. Parece que o arquivo .htaccess não está sendo reconhecido pelo Apache.
No entanto, se eu apontar o host virtual do Apache do meu Mac para a versão do site que tenho em uma partição NTFS (que funciona bem no Windows), ele também funcionará perfeitamente no Mac. O site na partição Mac é uma cópia exata do que na partição NTFS (mesmo. Htaccess, o mesmo DB, tudo).
O arquivo .htaccess não possui caminhos (sem referências a diretórios). O seguinte é o mesmo para o Mac e para a versão NTFS do arquivo:
ls -l .htaccess -rwxrwxrwx 1 root admin 944 Oct 8 16:02 .htaccess
file .htaccess .htaccess: ASCII English text, with CRLF line terminators
Eu não entendo o que está acontecendo, mas parece que copiar o arquivo do NTFS para a partição do Mac torna-o inútil?
Não me surpreenderia se o arquivo .htaccess estivesse ganhando algumas permissões estúpidas do volume NTFS que está descartando o apache. Tente criar um novo .htaccess
em branco e copie o conteúdo do arquivo para o novo; e veja como você vai.
Pode ser um par de coisas.
O Apache está configurado para ler o arquivo .htaccess? (sim, então esse não é o problema)
Tente rodar o "dos2unix .htaccess" para converter as terminações de linha CRLF que podem confundir o Apache. (errado novamente; supondo que ambos os .htaccesses sejam idênticos, nenhuma razão para isso afetar o servidor em uma partição, mas não a outra)
A única outra coisa em que consigo pensar é que a cópia estragou a propriedade ou as permissões do novo arquivo. Se o Apache não tiver privs para ler o arquivo, ele não entrará em vigor.
No Terminal, o que os seguintes comandos fornecem a você?
ls -l .htaccess file .htaccess
E da mesma forma para a versão NTFS?
Você tem certeza de que não há caminhos (referências a diretórios) dentro desse arquivo?
(E, desculpe por perguntar: você tem certeza que você realmente copiou o arquivo, sendo este um arquivo oculto no Unix? Do Terminal, use algo como cp -a old-dir new-dir
, usando -a
para preservar as datas e permissões do arquivo, e sem qualquer /*
para copiar arquivos ocultos também.
E se você garantir que haja um erro (apenas alguns erros de digitação) no arquivo .htaccess
do seu Mac? Você recebe um erro 500 Internal Server ao ir para alguma página? (Apenas para determinar se o Apache está ignorando completamente o .htaccess
quando o Host Virtual está configurado para examinar a partição do seu Mac ou está apenas ignorando partes de seu conteúdo, então ...)
E os dois sites estão no mesmo local relativo da raiz do Apache? (Como .../http_docs/
versus ~/Sites/
para ambos, e não ~/Sites/some/path
no seu Mac, que poderia ter outros arquivos .htaccess
em algum nível inferior)?
Tags mac macos apache-http-server