[Ur] Mandatory nginx conf: merge_slashes off

Adam Chlipala adamc at csail.mit.edu
Mon Apr 15 15:50:45 EDT 2019


Done 
<https://github.com/urweb/urweb/commit/c4aba7a0befd9988ae032c5532790e5fabb321b9> 
now!  Thanks for the suggestion.

On 1/26/19 2:00 PM, Simon Van Casteren wrote:
> If it's not much work, I'd say yes. What I mentioned won't happen 
> often, but it was an extremely annoying thing to track down.
>
> Simon
>
> Op za 26 jan. 2019 om 19:33 schreef Adam Chlipala <adamc at csail.mit.edu 
> <mailto:adamc at csail.mit.edu>>:
>
>     Reviewing a PR just now, I'm reminded that the logic I
>     half-recalled to avoid empty serializations is only for strings. 
>     Would it be worth changing [unit] serialization to avoid empty
>     serializations there, too?
>
>     On 1/25/19 8:21 AM, Simon Van Casteren wrote:
>>     It doesn't happen often of course, since you rarely use unit in a
>>     page or RPC function. How I ran into it was actually via the now
>>     fixed bug
>>     https://github.com/urweb/urweb/issues/117, I made some ADT's that
>>     got around that bug by declaring all constructors to have at
>>     least one parameter, unit if nothing else. That came back to bite
>>     me now...
>>
>>     A page with this signature:
>>
>>     val page: unit -> string -> transaction page
>>
>>     Would be affected by the issue I described. This obviously won't
>>     happen much outside of you making a mistake (for example because
>>     first the function took just a unit, then you added the string
>>     parameter), but because it doesn't happen often and it's actually
>>     nginx making the "mistake", I still thought it could help someone
>>     out in the future!
>>
>>     Simon
>>
>>     On Fri, 25 Jan 2019 at 13:57, Adam Chlipala <adamc at csail.mit.edu
>>     <mailto:adamc at csail.mit.edu>> wrote:
>>
>>         Thanks for sharing that wisdom!  Somehow I remember making a
>>         special effort to encode empty strings with underscores,
>>         precisely to avoid this problem (though it was appearing in
>>         Apache, if I recall correctly).  Can you point us to an
>>         example where it arises, in a URL that an Ur/Web app
>>         generates itself?
>>
>>         On 1/25/19 5:13 AM, Simon Van Casteren wrote:
>>>         Hi,
>>>
>>>         I just ran into an awful problem combining urweb with nginx.
>>>         By default, nginx by default merges double slashes in urls,
>>>         eg: http://www.bla.com//users becomes
>>>         http//www.bla.com/users <http://www.bla.com/users>. This can
>>>         be a problem for UrWeb applications since a double slash is
>>>         actually how urweb encodes the unit or () value.
>>>
>>>         The solution is to use the option: "merge_slashes off".
>>>
>>>         It's not a bug in either application so I didnt want me make
>>>         an issue for it, but this could be useful info for other
>>>         people running Ur/Web programs behind nginx...
>>>
>>>         Simon
>>
>     _______________________________________________
>     Ur mailing list
>     Ur at impredicative.com <mailto:Ur at impredicative.com>
>     http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
>
>
> _______________________________________________
> Ur mailing list
> Ur at impredicative.com
> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20190415/1df1e8f5/attachment.html>


More information about the Ur mailing list