Ok, ich habe das Problem gelöst, indem ich die Dateinamen mit einem Skript korrigierte . Ich denke, dass die Kodierung von Sonderzeichen irgendwann unterbrochen wurde, als ich die Dateien zwischen Systemen kopiert hatte (Gentoo => Mac OS X => Debian). Fühlen Sie sich frei, mein Skript zu verwenden und zu bearbeiten, wenn Sie ein ähnliches Problem haben.
Sonderzeichen in Dateinamen + nginx + php = 404
Vor kurzem bin ich auf einen neuen Server umgezogen, nachdem der alte gestorben war. Ich hatte dort eine WordPress-Installation, die von Apache2 und Gentoo Linux unterstützt wurde. Beim Umzug entschied ich mich, stattdessen Nginx und Debian zu verwenden. Ich brachte mein Wordpress zurück zur Arbeit und alles wäre gut, wenn nicht für ein bisschen ...
Problem
Bilder, die Sonderzeichen in den Dateinamen enthalten, werden nicht geladen. Ich bekomme 404 Not Found . Zum Beispiel bei der Anfrage
http://my_site/wp-content/uploads/2013/05/Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
WordPress antwortet
You tried going to http://my_site/wp-content/uploads/2013/05/Zaj%C4%99cia-dla-doros%C5%82ych-z-bollywood-dance.jpg, and it doesn't exist.
Ich spielte eine Weile mit dem Terminal und stellte fest, dass die Dateinamen auf dem Server ein wenig von den von WordPress angeforderten Dateinamen abweichen. Obwohl sie identisch aussehen, sind spezielle Zeichenfolgen auf unterschiedliche Weise codiert. Wenn ich beispielsweise Dateiname Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
vom Terminal kopiere, wird er als codiert Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
. Auf der anderen Seite sucht WordPress nach Dateien, Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
die natürlich nicht existieren.
Beide Systeme (das alte Gentoo und das aktuelle Debian) verwenden UTF-8-basierte Ländereinstellungen.
Wie löst man?
Ich denke über drei mögliche Gründe nach:
- Debian speichert Sonderzeichen in Dateinamen anders als Gentoo
- mein neues mysql speichert Sonderzeichen anders als das alte
- Sonderzeichen werden von nginx anders behandelt als in Apache
Irgendwelche Vorschläge, wie man diese Hypothese fälschen und schließlich das Problem lösen kann?
1 Antwort auf die Frage
Verwandte Probleme
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
6
Vollbild-Flash langsam in KDE 4
-
3
Pakete in einem seltsamen Zustand
-
8
Finden Sie, zu welchem Paket eine Datei in Ubuntu / Debian gehört?
-
2
Wie richte ich ein automatisches Login bei Debian (Lenny) ein?
-
1
Amaroks hört nach einem Song auf zu spielen
-
3
Amarok weigert sich, * .ogg-Dateien abzuspielen
-
2
Kopete, um mit GTalk zu arbeiten
-
2
Beim Verknüpfen mit aac-Audiodateien wird ein 404 zurückgegeben
-
4
Sendmail-Ersatz auf einem Debian-Heimcomputer