Como o apache pode servir arquivos com caracteres utf-8?

1

Do navegador, estou tentando acessar o arquivo https://example.com/86/86454cff-556a-4162-aa65-433158c133f4/Informacja+kwartalna++III+kwartał+2016+r. e estou recebendo o erro 404.

Quando eu verifico o sistema de arquivos, o arquivo existe com os caracteres codificados: 86/86454cff-556a-4162-aa65-433158c133f4/Informacja+kwartalna++III+kwarta%C5%82+2016+r.

Quando eu virei as listagens, o Apache exibe esse arquivo em https://example.com/86/86454cff-556a-4162-aa65-433158c133f4/Informacja+kwartalna++III+kwarta%25C5%2582+2016+r.

Como posso fazê-lo funcionar para que seja exibido corretamente no primeiro endereço? Ou devo salvar o arquivo no sistema de arquivos usando caracteres utf-8 sem codificar? O que você sugeriria?

    
por Kangur 28.05.2017 / 18:16

2 respostas

3

O nome do arquivo não deve ter nenhum URL em seu sistema de arquivos. A codificação de URL só é relevante durante a solicitação de HTTP do cliente para o servidor, porque nessa parte você pode usar apenas caracteres ASCII.

Quando o Apache ou qualquer outro servidor da Web recebe a solicitação, ele primeiro decodifica a codificação da URL e depois procura o nome do arquivo.

É claro que existem várias maneiras de codificar caracteres Unicode. No entanto, a codificação do nome do arquivo é feita pelas bibliotecas do sistema / sistema de arquivos e é a mesma para todos os aplicativos. Portanto, você precisa apenas verificar se o nome do arquivo é o mesmo no diretório que deseja usar na URL do navegador.

Se houver um CMS envolvido, sua implementação deve suportar adequadamente os nomes de arquivos Unicode. Infelizmente, o suporte para nomes de arquivos Unicode no CMS 'geralmente é ruim, e você precisa se restringir a nomes de arquivos ASCII para que as coisas funcionem corretamente.

    
por 29.05.2017 / 06:59
-2

Eu acredito que o que você está procurando é o .htaccess e links simbólicos. Não me lembro quais são as diretivas exatas.

    
por 28.05.2017 / 18:45