Hallo Jan,

Am 30.07.2008 um 09:47 schrieb Jan Roesner:
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.


damit habe ich mich voriges Jahr auch mal zeitaufwändig rumgeschlagen. ;)

Ich habe da so ein Ding mit Tags, die manchmal komische Zeichen enthalten können, z.B. "geo:long=13.41644":
http://www.uninformation.org/tag/geo%253Along=13%252E41644
Und es kam genau zu dem Phänomen, was Du beschreibst.

Ich habe das dann so gelöst:

Bei der Darstellung (obiges Bsp., rechts bei den "verwandten Tags") formatiere ich die Links mit einem Helper, der den Tag in "tag" für die Darstellung als link_to-Parameter aufbereitet:

def tag_encode(tag)
  URI.escape(tag,/[\.:]/)
end

Im Template steht dann:
link_to tag, tag_path(tag_encode(tag)) usw.

Im Controller dekodiere ich das dann wieder, "params[:id]" enthält den Tag:
URI.unescape(params[:id])

Das funktioniert dann mit Apache und Mongrel. Ich weiß nicht mehr genau, was die Ursache für das unterschiedliche Verhalten mit "reinem" Mongrel-Entwicklungsserver und der Apache/Mongrel-Kombination auf dem Live-Server ist, es hat irgendwas mit der Art und Weise zu tun, wie mod_proxy "komische Zeichen" in URL behandelt.

viele Grüße
Ralf

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an