apache url / filename com caracteres especiais

6

Eu tenho este URL:

http://domain.com/wp-content/uploads/2012/10/Hvilke-vilkår-følger-med-når-du-bestiller-nyt-bredbånd.png

Se eu ftp / ssh ou apenas navegar para essa pasta (recurso de índice do apache), eu vejo o arquivo

Hvilke-vilkår-følger-med-når-du-bestiller-nyt-bredbånd.png

Se eu clicar no link do índice do apache, eu posso ver o arquivo, no entanto, se eu copiar o URL e tentar navegar diretamente para ele, recebo o erro:

The requested URL /wp-content/uploads/2012/10/Hvilke-vilkår-følger-med-når-du-bestiller-nyt-bredbånd.png was not found on this server.

Além disso, meu log de erros diz:

File does not exist: /wp-content/uploads/2012/10/Hvilke-vilk\xc3\xa5r-f\xc3\xb8lger-med-n\xc3\xa5r-du-bestiller-nyt-bredb\xc3\xa5nd.png

    
por Mario Delgado 15.11.2012 / 19:10

2 respostas

3

Você provavelmente precisará normalizar a codificação dos nomes dos arquivos para o formato Unicode NFC . Veja a pergunta StackOverflow 12643402 relacionada. Uma ferramenta que você pode usar é convmv , que deve ser disponível no CentOS .

    
por 15.11.2012 / 23:27
0

RFC 3986 §2.5 recomenda que os caracteres não-ASCII sejam primeiro representados no caractere UTF-8 codificação, cada byte dessa codificação deve ser codificado por porcentagem. No entanto, o RFC 2396 mais antigo não recomenda nenhuma codificação de caracteres em particular. Portanto, o comportamento do navegador quando você insere um endereço contendo caracteres não-ASCII na barra de endereço depende da implementação, especialmente se você estiver usando um navegador mais antigo. Por exemplo, o Internet Explorer 7 no Windows e o Safari 6 no OS X não exibem o problema descrito por você.

Seu site parece estar rodando no LiteSpeed Web Server, um clone proprietário do Apache. Quando o LiteSpeed gera URLs dos links no índice do diretório, ele não é uma codificação percentual dos caracteres não-ASCII nos nomes de arquivos, levando à situação ambígua descrita acima. Por outro lado, o Apache 2.2.16 faz a codificação percentual da representação UTF-8 dos nomes de arquivos, portanto, seu problema não ocorreria no Apache. Talvez uma versão mais nova do LiteSpeed possa resolver seu problema. Também é possível que a especificação de IndexOptions Charset=UTF-8 possa ajudar. Como o LiteSpeed é proprietário, não posso ajudá-lo; você terá que entrar em contato com o suporte técnico. A julgar pelo fato de que seu servidor emite <A HREF="..." ao invés de <a href="..." , eu diria que o código gerador de índices de diretório do LiteSpeed não é baseado em nenhuma versão recente do Apache.

    
por 15.11.2012 / 20:35