Problem mit Rewrite und Dateinamen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Rewrite und Dateinamen

    Hallo,

    ich habe einen Ordner mit PDFs drinnen, deren Namen ich nicht ändern kann.

    Nun möchte ich aber alle Dateinamen vor dem Download durch einen Counter schicken. Daher hab ich mir eine Rewriterule geschrieben, die alle PDF-Aufrufe innerhalb eines Ordners auf den Counter lenkt und dabei den Dateinamen übergeben soll.

    Das funktioniert auch, bis auf einen Fehler.

    Folgender Dateiname macht Sorgen: A_Faludi+Gibas-3-2008.pdf

    Das + stört, egal ob mittels urlencode() oder rawurlencode() kodiert wurde, es kommt nicht an und die Datei A_Faludi Gibas-3-2008.pdf kann er dann natürlich nicht finden.

    Die Rewriterule schaut so aus:
    Code:
    RewriteRule ^pdf/(.*)$		counter.php?file=$1 [QSA,L]

    Kann man das Problem beheben und wenn ja, wer hat nen Tipp für mich?

  • #2
    Leerzeichen gehören auch nicht in Dateinamen.
    Vor dem Speichern der Dateien darauf achten, dass die Leerzeichen oder generell Sonderzeichen entfernt werden. Das würde die Lösung Deines Problems sein.
    MM Newmedia | MeinBlog

    Comment


    • #3
      Ja nee iss klar, deshalb hab ich ja auch geschrieben
      ich habe einen Ordner mit PDFs drinnen, deren Namen ich nicht ändern kann.
      Das mit den Sonderzeichen ist mir auch klar, aber ich dachte, wenn ich die Namen durch urlencode() jage, dass dann passt, aber dem scheint nicht so.

      Andere Vorschläge?

      Comment


      • #4
        Damit scheint es nun zu gehen:
        Code:
        RewriteRule ^pdf/([a-zA-Z0-9\-\+_]+)$		counter.php?file=$1 [QSA,L]
        Ich dachte immer, (.*) bedeutet alle Zeichen, aber wenn ich explizit ein + in der Zeichenklasse angebe, dann kommt es auch an.

        Comment

        Working...
        X