I am trying to run CherryPy behind Apache using mod_rewrite, as described in the CherryPy documentation (BehindApache, ModRewrite), and it is not working.
Edit: Earlier, my description of this problem was somewhat inaccurate. It seems like I forgot to restart Apache during some of my attempts. I have revised the question significantly.
When I run my program (a very simple "hello world" program similar to the first tutorial file that comes with CherryPy), it seems to work fine. If I run curl "http://127.0.0.1:8080"
from my server, I can see the output, and I see some sort of record of it in the CherryPy log.
However, if I try to access the site from my browser, I get a 403 Forbidden error saying "You don't have permission to access / on this server.". I do not see any record of it in the CherryPy log. I tried putting the RewriteRule (RewriteRule ^(.*) http://127.0.0.1:8080$1 [proxy]
) in the appropriate VirtualHost section of my httpd.conf file, both with and without the slash, and both times I got the same error. In my Apache error log, I see lines like this:
[Mon Sep 27 15:54:11 2010] [error] [client 123.45.67.89] attempt to make remote request from mod_rewrite without proxy enabled: proxy:http://127.0.0.1:8080/
I tried putting the RewriteRule in the .htaccess file of my site instead, and I got 404 Not Found errors, with lines like this in my error log:
[Mon Sep 27 13:31:54 2010] [error] [client 123.45.67.89] Attempt to serve directory: proxy:http://127.0.0.1:8080/
I still didn't see any entries in the CherryPy log.
I decided to see what would happen if I tried to access the site without CherryPy running, and I got the same thing. It is as if Apache is trying unsuccessfully to communicate with the CherryPy program if I put the line in httpd.conf, and completely unaware of it when I put the line in .htaccess.
Does anyone here know why this is happening, and what to do about it? I have tried everything I could think of. My site is running on a DreamHost private server with Debian 4.3.2-1.1, Apache 2.2.15, Python 2.6.5, and CherryPy 3.1.2.
Edit 2: lazy1, I tried your suggestion and it did not help. I am getting the same 403 errors.