views:

84

answers:

2

I'm in the final stages of going round trip through the entire Rails cycle: development -> test -> production (on an external server). I'm very close...but seeing some errors with the production version and don't know enough about Rails' "magic" to troubleshoot it yet...

this works: www.mydomain.com/rails and returns my app's view

but this: www.mydomain.com/rails/ returns (in its entirety):

<html>
<body>
Index from public
</body>
</html>

Where is this coming from!?! I've ruled out Apache. as Apache wouldn't return that kind of html as an index of a directory...

Added: VirtualHost (per request):

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAdmin [email protected]
    DocumentRoot "/Library/WebServer/mydomainweb"
    DirectoryIndex "index.html" "index.php"
    CustomLog "/var/log/apache2/access_log" "%h %l %u %t \"%r\" %>s %b"
    ErrorLog "/var/log/apache2/error_log"
    ErrorDocument 404 /error.html
    <IfModule mod_ssl.c>
        SSLEngine Off
        SSLCertificateFile "/etc/certificates/Default.crt"
        SSLCertificateKeyFile "/etc/certificates/Default.key"
        SSLCipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL"
    </IfModule>
    <IfModule mod_dav.c>
        DAVLockDB "/var/run/davlocks/.davlock100"
        DAVMinTimeout 600
    </IfModule>
    <IfModule mod_mem_cache.c>
        CacheEnable mem /
        MCacheSize 4096
    </IfModule>
    <Directory "/Library/WebServer/mydomainweb">
        AllowOverride None
        <IfModule mod_dav.c>
            DAV On
        </IfModule>
        Options All -Includes -ExecCGI +MultiViews -Indexes
    </Directory>
    RailsBaseURI /rails
    <Directory /Library/WebServer/rails/myapp/public>
        Options -MultiViews -Indexes
    </Directory>
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]
    </IfModule>
    <IfModule mod_proxy_balancer.c>
        <Proxy "balancer://balancer-group">
        </Proxy>
    </IfModule>
    <IfModule mod_alias.c>
        Alias "/collaboration" "/usr/share/collaboration"
        Alias "/icons/" "/usr/share/httpd/icons/"
        Alias "/error/" "/usr/share/httpd/error/"
        Redirect temp "/zapp.html" "/index.html"
    </IfModule>
    Include /etc/apache2/httpd_groups.conf
    Include /etc/apache2/httpd_teams_required.conf
    LogLevel warn
    ServerAlias mydomain.com
    ServerAlias images.mydomain.com
</VirtualHost>
A: 

My guess is that apache has directory browsing enabled and passenger is routing this request to the public folder which in turn is going to apache direct.

You can try

  1. Disabling directory browsing by disabling Options Indexes (omitting Indexes)
  2. You possibly catch a route in your routes.rb file to that path explicitly and route it to where you wish.
Sam Saffron
I have tried adding "Options -Indexes" in the <Directory> of the VirtualHost but it doesn't seem to help
Meltemi
A: 

For the second one, does it work if you do www.mydomain.com/rails/mycontroller/show/1?

If it works with "show" in between mycontroller and 1, there's a problem with your routes.

ahlatimer
tried that. It does not work with `www.mydomain.com/rails/mycontroller/show/1` either.
Meltemi