Can I do some kind of mixing DELETE and GET?
Yes. You don't need to worry about the request method or the PUT body at all in your rewrite rules.
For your example this means:
mod_rewrite
RewriteRule book/([0-9]+) book.php?id=$1 [QSA]
HTTP request
PUT /book/1234
=> PUT /book.php?id=1234
PHP script
$id = intval($_GET['id']);
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
// yes, it is. go on as usual
}
For further clarification: The difference between GET parameters and PUT/POST/DELETE parameters is that the former are part of the URL, the latter part of the request body. mod_rewrite
only changes the URL and does not touch the body.