Pergunta

Eu tenho Apache com mod_rewrite, e sempre que eu entrar em um URI com um caractere acentuado nele, Apache me dá um erro "página não encontrada".

O URI é: lugares / / tags / Café

A página do meu codificação é UTF-8. Minha conexão de banco de dados e tabelas são UTF-8. Meu Apache DefaultCharacterSet = UTF-8. Sim, Apache tem pacotes de idiomas, mas acredito que eles estão lá para o conteúdo da página, não URIs.

Nós preferimos não ter a url codificado em sinais de porcentagem e html entidades, e que eliminasse os caracteres especiais não é prático no momento, em nossos 100 milhões de linhas de dados.

Qualquer ajuda seria muito apreciada.

Foi útil?

Solução

Acontece que eu tinha uma regra apache reescrever ruim. Eu tinha vindo a utilizar: ([a-zA-Z0-9 _-] ) caracteres UTF-8 não fazem parte de um-zA-Z. Alterar a regra a ser: (. ) Isso significa que quaisquer caracteres (ASCII, UTF-8, ou othewise). Parece funcionar bem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top