Ich habe gerade eine unserer Kern-Apps von Windows + IIS + Coldfusion auf Ubuntu + Apache + Lucee verschoben. Das erste große Problem ist die URI-Codierung für exotische Alphabete.Lucee URI Kodierungsproblem (kyrillisch)
Zum Beispiel versuchen, diese URL http://www.example.com/ru/Солнцезащитные-очки/saint-laurent/
Ergebnisse in dieser Datensatz in der Apache access.log zu erreichen:
http://www.example.com/ru/%D0%A1%D0%BE%D0%BB%D0%BD%D1%86%D0%B5%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%BD%D1%8B%D0%B5-%D0%BE%D1%87%D0%BA%D0%B8/saint-laurent/
Nun, ich denke, das ist richtig URL-codiert. Dann benutze ich eine Rewrite-Regel in .htaccess-Datei, um diesen Teil der URL (die kyrillische) in einem URL-Abfrage-String-Parameter (sagen wir "foo") zu bekommen.
cflog Mit ihm abzuladen, ich sehe in dem Anwendungsprotokoll:
/index.cfm?foo=оÑки-длÑ-зÑениÑ&
... was offensichtlich falsch ist, weil das, was ich brauche, ist die ursprüngliche Zeichenfolge, in utf-8 kyrillisch.
Ich versuchte URIEncoding Parameter in meinem server.xml tomcat http-Anschluss, ohne Ergebnisse zu setzen:
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
Wie kann ich meine URL-Parameter in UTF-8?
Das erste, was ich versuchen würde wäre Tomcat zu isolieren und das direkt zu testen. h., versuchen Sie es mit http: // hostname: 8888/index.cfm? foo = Солнцезащитные-очки. Wenn das richtig funktioniert - Ihr Problem ist auf der Seite Apache/mod_rewrite. Dies könnte helfen, die Frage zu fokussieren. Wenn Sie immer noch ein Problem haben, können Sie sich auch die Tomcat-Zugriffsprotokolle für die weitere Isolierung ansehen (vielleicht ist es in der Tat eher ein Lukee-Problem als ein Tomcat-Problem). –
Ich habe versucht und es funktioniert, wenn ich Lucee direkt den kyrillischen Parameter übergeben, wie Sie geschrieben haben. Also ... ist das ein Apache mod_rewrite Problem? Warum ändert sich meine Codierung?!? –
Das kann ich dir nicht sagen (nicht mein Fachgebiet). Aber Sie könnten die Frage als Apache/Mod umschreiben und einige Details angeben, damit einige Experten in diesem Bereich helfen könnten (obwohl es so aussieht, als würden Sie diese URLs überhaupt nicht verwenden). –