Force search form to go to clean url without multiple redirects

Assuming you make your form’s action point to the correct URL, here are Two (and a half) Options:

With Javascript (jQuery)

jQuery(document).ready( function() {
    jQuery("#searchform").submit( function() {
        self.location.href = jQuery(this).attr("action") + jQuery("#s").val();
        return false;
    });
});

You could also do it without jQuery (if you don’t use jQuery on your site and don’t want to load it just for this). Here’s a simple version of that (probably not super cross browser, but I haven’t tested it), which you can expand on:

<form action="/suche/" onsubmit="self.location.href=this.getAttribute('action') + document.getElementById('s').value; return false;">
<input type="text" name="s" id="s" />
<input type="submit"></form>

With a rewrite rule:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^s=(.*)
RewriteRule ^(.*?)/?$ $1/%1? [R=302,L]

This would work on any URL that gets ?s=… passed, you might want to limit that to your actual search, as in

RewriteEngine On
RewriteCond %{QUERY_STRING} ^s=(.*)
RewriteRule ^suche/$ /suche/%1? [R=302,L]

And if you pass multiple arguments in that form (say, a category and a string to search for), this would have to be adapted accordingly, right now it just assumes that there’s only one parameter, and it’s the query string.