tags:

views:

21

answers:

1

Hello!

I want to host two different services on a Apache web server, reachable via the same domain: Some special URLs should go into the filesystem, all others should be handle by a Rails application.

Example:

http://mydomain.com/foo/123.txt
=> should deliver /var/www/special/foo/123.txt

http://mydomain.com/users
=> should go to Rails/Passenger

Here is my virtual host setup for the Rails app:

<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias *.mydomain.com

    DocumentRoot /var/www/mydomain/current/public

    <Directory /var/www/mydomain/current/public>
     Options FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow from all
     ExpiresActive on
     ExpiresDefault "access plus 1 year"
     FileETag MTime Size
    </Directory>

    RewriteEngine On

    # Check for maintenance file and redirect all requests
    ErrorDocument 503 /system/maintenance.html
    RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$
    RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
    RewriteCond %{SCRIPT_FILENAME} !maintenance.html
    RewriteRule ^.*$ -  [redirect=503,last]

    # Rewrite index to check for static
    RewriteRule ^/$ /index.html [QSA]

    # Rewrite to check for Rails cached page
    RewriteRule ^([^.]+)$ $1.html [QSA]

    # Deflate
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/xml application/xhtml+xml text/javascript application/x-javascript

    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    ErrorLog /var/log/apache2/mydomain.com-error_log
    CustomLog /var/log/apache2/mydomain.com-access_log combined
</VirtualHost>

Somewhere in the middle a RewriteCond/RewiteRule should be added, so accessing http://mydomain.com/foo/123.txt does not go to the Rails app, but the filesystem instead.

For this I need help. It would by great if someone can can give me a hint.

A: 

Found the solution by myself:

RewriteCond %{REQUEST_URI} ^/foo/.*$
RewriteRule ^.*$ /var/www/special/foo%{REQUEST_URI}
Georg Ledermann