This works:
HTML
<a href="/search/querystring">query</a>
htaccess
RewriteRule ^search/([-0-9a-z]+)$ /search.php?q=$1 [L]
Going through a search form:
<form method="get" action="/search">
<input type="search" name="q" value="querystring" />
<input type="submit" />
</form>
Is this possible with htaccess or do I need to redirect with PHP from within search.php?
Example desired result in action: http://twitter.com/search/hello
EDIT
I prefer not to be dependant on JavaScript to do this so search engines and folks with JavaScript disabled will see this too.
I think the problem is that you've created an HTML form with GET method, which automatically opens the URL that way you specified as the result. If you want to submit your search query like the desired one, you should hack the form with some JavaScript to call your good-looking URL like this:
<form method="get" action="/search/" onsubmit="return false;">
<input type="search" name="q" value="querystring" />
<input type="submit" onclick="window.location.href=this.form.action + this.form.q.value;" />
</form>