2009-11-27 7 views
0

Je souhaite héberger deux services différents sur un serveur Web Apache, accessible via le même domaine: Certaines URL spéciales doivent être placées dans le système de fichiers, toutes les autres doivent être gérer par une application Rails.Apache: envoi d'URL depuis le système de fichiers, tous les autres depuis l'application Rails

Exemple:

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

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

Voici ma configuration d'hôte virtuel pour l'application Rails:

<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> 

Quelque part au milieu d'un RewriteCond/RewiteRule doit être ajouté, afin accès http://mydomain.com/foo/123.txt ne va pas l'application Rails, mais le système de fichiers à la place.

Pour cela, j'ai besoin d'aide. Ce serait génial si quelqu'un peut me donner un indice.

Répondre

0

trouvé la solution par moi-même:

RewriteCond %{REQUEST_URI} ^/foo/.*$ 
RewriteRule ^.*$ /var/www/special/foo%{REQUEST_URI} 
Questions connexes