+1  A: 

You need to grant access to /data/www/reviewboard/htdocs

<Directory "/data/www/reviewboard/htdocs">
    Order allow,deny
    Allow from *
    AllowOverride All
</Directory>
t3k76
Thanks for the answer.I added what you suggested, but I still got the same error in the log. It seems like the httpd tries to access "/data/www/reviewboard/htdocs/rb" directory, which does not exist. Doesn't configuration file tell httpd to run Django application instead of access the plain file system?
X. Ma
oh, i see what you mean. Apache is picking up that dir instead of sending to mod_python. My answer was trying to help handle the 403. I generally use mod_wsgi, so I'm afraid the mod_python issue isn't immediately clear to me.
t3k76
Exactly. Any ideas about what I did wrong with mod_python? The configuration file was actually generated automatically by Review Board's "rb-site" script.
X. Ma
+1  A: 

Found the answer from the author of Review Board. The trick is to add

Options FollowSymlinks

in the <Location> tag that points to the media directory, because that directory contains symbolic links.

More detail is in this post:

http://groups.google.com/group/reviewboard/browse_thread/thread/6fac4d0041237f15/

X. Ma