Hallo Leute,
nachdem ich mit einem Projekt von lighttpd auf die Kombination Apache
+Mongrel+Capistrano umgestiegen bin, habe ich ein lustiges Problem mit
URL’s , dass mir seit einigen Stunden etwas Kopfschmerzen macht.
Folgende Situation:
Ich baue auf einer Seite Link’s aus Kategorienamen zusammen, etwa so:
<% for category in @movings %>
<%= link_to(category.to_s, :controller => “archive”, :action =>
“Transporte-fuer-”+category.to_s) %>
<% end %>
Mit Hilfe einer passenden Route fange ich dabei den Kategorienamen bei
einem Klick als params[:permalink] und kann so die korrekte Seite
rendern.
Jetzt gibt es bei mir aber mehrere Kategorien nach einem Schema wie
diesem z.B.:
“Be-/Entladen & Transport” … nicht gerade optimal, Slash, Space und
weitere Sonderzeichen, die escaped werden wollen. Aber Rails tut das ja
einwandfrei.
Die passende URL sieht dann so aus:
http://172.16.215.129/archive/Transporte-fuer-Be-%2FEntladen+%26
+Transport
Und auch wenn ich Sie von Hand anpasse auf:
http://172.16.215.129/archive/Transporte-fuer-Be-%2FEntladen%20%26%
20Transport
funktioniert alles wie erwartet. Zumindest auf meinen beiden
Dev-Systemen auf denen einmal WebRick und einmal lighttpd läuft.
Deploye ich jetzt auf mein Produktivsystem und klicke z.B. den Link an,
bekomme ich vom Indianer aber nur ein trockenes:
Not Found
The requested URL /archive/Transporte-fuer-Be-/Entladen+&+Transport was
not found on this server.
Interessant dabei ist, dass im production-log der Aufruf des
Zielcontrollers nicht mal ankommt. Muss also definitiv eine Apache Issue
sein, ich bin mir nur keiner Schuld bewusst. Das dumme ist, dass selbst
wenn ich die URL komplett von Hand sauber codiere:
http://172.16.215.129/archive/Transporte-fuer-Be-%2FEntladen%20%26%
20Transport
der Fehler der gleiche bleibt. Ich stehe gerade etwas auf dem Schlauch,
möchte ungern eine Sonderbehandlung für solche Kategorien einbauen. Kann
mich jemand von Euch in die richtige Richtung schubsen?
Gruss und Dank
Jan R.
jan [a t] roesner [d o t] it