Apache: доставить некоторые URL-адреса из файловой системы, все остальные из приложения Rails - PullRequest
0 голосов
/ 27 ноября 2009

Я хочу разместить две разные службы на веб-сервере Apache, доступные через один и тот же домен: некоторые специальные URL-адреса должны входить в файловую систему, все остальные должны обрабатываться приложением Rails.

Пример:

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

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

Вот мои настройки виртуального хоста для приложения 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>

Где-то посередине должен быть добавлен RewriteCond / RewiteRule, поэтому доступ к http://mydomain.com/foo/123.txt идет не в приложение Rails, а в файловую систему.

Для этого мне нужна помощь. Было бы здорово, если бы кто-нибудь смог дать мне подсказку.

1 Ответ

0 голосов
/ 27 ноября 2009

Нашел решение сам:

RewriteCond %{REQUEST_URI} ^/foo/.*$
RewriteRule ^.*$ /var/www/special/foo%{REQUEST_URI}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...