L'URI UTF-8 esplode Apache & amp; mod_rewrite
-
06-07-2019 - |
Domanda
Ho Apache con mod_rewrite e ogni volta che entro in un URI con un carattere accentato, Apache mi dà una "Pagina non trovata" di errore.
L'URI è: / places / tags / Café
La codifica della mia pagina è UTF-8. La mia connessione al database e amp; le tabelle sono UTF-8. My Apache DefaultCharacterSet = UTF-8. Sì, Apache ha i language pack, ma credo che siano lì per il contenuto della pagina, non per gli URI.
Preferiremmo non codificare l'URL in segni di percentuale ed entità html e rimuovere i caratteri speciali non è pratico al momento, sui nostri 100 milioni di righe di dati.
Qualsiasi aiuto sarebbe molto apprezzato.
Soluzione
Si è scoperto che avevo una brutta regola di riscrittura di Apache. Stavo usando: ([a-zA-Z0-9_-] ) I caratteri UTF-8 non fanno parte di a-zA-Z. Modifica la regola in: (. ) Ciò significa che qualsiasi carattere (ASCII, UTF-8 o altrimenti). Sembra funzionare bene.