htaccess não funciona no Mac quando copiado, mas funciona a partir de uma partição NTFS

1

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?

    
por Petruza 09.10.2009 / 16:05

4 respostas

0

Desculpe! Eu tinha o apache configurado para agora permitir a substituição do .htaccess. : (

    
por 28.10.2009 / 19:54
1

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.

    
por 09.10.2009 / 17:03
1

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.

por 09.10.2009 / 17:04
1

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)?

    
por 09.10.2009 / 17:00