Hi,
I''ve got rails working with cgi and mod_ruby, using the non-vhost
method.
To display css or image files in public/ I modified my routes:
route.rb
map.connect ''rails/:controller/:action/:id''
map.connect ''rails/stylesheets/:file'', :controller =>
"stylesheets"
map.connect ''rails/images/:file'', :controller =>
"images"
Then I used this to access stylesheets, images etc. in public/
<%= url_for( :controller => "stylesheets", :file =>
"stylesheets" ) %>
<%= url_for( :controller => "images", :file =>
"images" ) %>
It worked for mod_ruby and cgi, however, when I switched to fcgi, the
app works but fastcgi wants to execute files in public/images
public/stylesheets
Apache error log:
[Fri Mar 11 12:01:11 2005] [error] [client 127.0.0.1] FastCGI: invalid
(dynamic) server "/home/rob/ScriptTest/public/images/header.png":
access
for server (uid 81, gid 81) not allowed: execute not allowed, referer:
http://localhost/rails/repo/main
Here''s my .htaccess, where I think the solution may lie, with some
rewrite trickery:
RewriteBase /rails/
AddHandler fastcgi-script .fcgi
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi?$1 [QSA,L]
ErrorDocument 500 /500.html
I''ve tried all the rewrite{rule,cond}s in the wiki, but no luck.
Any ideas?
Thanks
--
Rob Cakebread
Gentoo Linux Developer
Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x96BA679B
Key fingerprint = 5E1A 57A0 0FA6 939D 3258 8369 81C5 A17B 96BA 679B