1) Even if Hiawatha would support URL rewriting for PUT and DELETE, I still forsee a problem. Symfony is most likely build on and build for... Apache. And Apache got the PUT request wrongly implemented. If you PUT to a CGI program in Apache, Apache will execute the CGI program. It is up to that CGI script to read the body of the HTTP request. This is wrong. What Hiawatha does is overwrite the CGI program with the body of the HTTP request. According to the official HTTP RFC, that's the correct way of handling a PUT request. And otherwise, there wouldn't be a difference between POST and PUT. Quote from the official
HTTP RFC [www.w3.org]:
"The fundamental difference between the POST and PUT requests is reflected in the different meaning of the Request-URI. The URI in a POST request identifies the resource that will handle the enclosed entity. That resource might be a data-accepting process, a gateway to some other protocol, or a separate entity that accepts annotations. In contrast, the URI in a PUT request identifies the entity enclosed with the request -- the user agent knows what URI is intended and the server MUST NOT attempt to apply the request to some other resource."This also indicates that URL rewriting for PUT requests is not allowed...
2) I guess the problem lies in that Symfony was build on and build for Apache. But that's a guess. I haven't looked at Symfony yet. I will put it on my TODO list.
I think both of your 'problems' come from the fact that many web developers follow Apache's standard instead of the official web standards. Many people like to say how bad Microsoft is for not following standards and they therefor should use open source. Specially Apache instead of MS IIS. Well, if you really take open standards serious... don't go for Apache.