Temos um site, onde algumas fotos são nomeadas usando unicode, por exemplo wildkräuter2_big.jpg
.
O problema é - quando alguém tenta acessá-lo - o Apache 2.4 retorna um erro 404:
$ curl -r 0-99 http://domain.tld/wp-content/uploads/2014/11/wildkräuter2_big.jpg
no log do Apache:
40...168 - - [30/Jun/2016:13:27:36 +0000] "GET /wp-content/uploads/2014/11/wildkr%C3%A4uter2_big.jpg HTTP/1.0" 404 22295 "-" "curl/7.35.0"'
%C3%A4
here - é um ä , como Deutsch - Unicode Tabelle diz.
Se executar GET
com %C3%A4
- não funcionará.
Se executar GET
com um a%CC%88
- ele irá funcionar :
$ curl -r 0-99 http://domain.tld/wp-content/uploads/2014/11/wildkra%CC%88uter2_big.jpg
����▒ExifII��Duckyd���http://ns.adobe.com/xap/1.0/<?xpacket begin="
Não tenho certeza - de onde recebi um código a%CC%88
- mas funciona.
Então, duas URLs "iguais":
link - isso funciona
link - isso não funciona.
Tanto a%CC%88
quanto %C3%A4
significam a mesma - uma letra ä .
Este site foi migrado de outra agência e não temos informações sobre sua configuração.
Nosso servidor atual funciona no Ubuntu 14.04, com LANG=de
( apache2
foi reiniciado depois que LANG
foi alterado, mas não todo o servidor Linux) como locale
e ext4
filesystem:
# su -s /bin/bash www-data
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de
LANGUAGE=
LC_CTYPE="de"
LC_NUMERIC=uk_UA.UTF-8
LC_TIME=uk_UA.UTF-8
LC_COLLATE="de"
LC_MONETARY=uk_UA.UTF-8
LC_MESSAGES="de"
LC_PAPER=uk_UA.UTF-8
LC_NAME=uk_UA.UTF-8
LC_ADDRESS=uk_UA.UTF-8
LC_TELEPHONE=uk_UA.UTF-8
LC_MEASUREMENT=uk_UA.UTF-8
LC_IDENTIFICATION=uk_UA.UTF-8
LC_ALL=
Tags unicode linux apache-2.2