I know my webserver has problems picking up .htaccess files that aren't in the webroot (allowoverride setting or something)
Slighty off topic: do NOT use (.*) to match URLs! It is greedy, so it willl often match more than you wanted, and is lazy because it allows anything to go through when it shouldn't.
If it is an ID, use ([0-9]+)
If it is a title (clean), use ([-a-z0-9]+) (adjust according to needs)
Code:
RewriteEngine on
RewriteRule ^([0-9]+)/$ index.php?confessionid=$1
RewriteRule ^([-a-z0-9]+)/keyword/$ index.php?view=random&keyword=$1
RewriteRule ^(.*)/view=(.*)$ index.php?view=$1 #dont understand the logic here