Назад | Перейти на главную страницу

Почему мой псевдоним apache не работает?

Вот мой vhost в apache 2.4:

<VirtualHost *:80>
    ServerName mailcatcher.dev
    Alias /mailcatcher.dev.png /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/mailcatcher-0.5.12/public/images/logo_large.png
    <Directory /Users/me/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/mailcatcher-0.5.12/public/images>
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog "/private/var/log/apache2/mailcatcher.dev-error_log"
    CustomLog "/private/var/log/apache2/mailcatcher.dev-access_log" common
    ProxyPass / http://127.0.0.1:1080/
    ProxyPassReverse / http://127.0.0.1:1080/
</VirtualHost>

Я пытаюсь получить один URL http://mailcatcher.dev/mailcatcher.dev.png преобразовать в файл, а все остальные запросы будут перенаправлены в интерфейс веб-почты. Якобы моя конфигурация в порядке согласно apachectl -t; но файл не обслуживается, и в моем журнале доступа отображается 404 (ниже) (в журнале ошибок ничего нет).

::1 - - [18/Sep/2014:22:42:07 -0600] "GET /mailcatcher.dev.png HTTP/1.1" 404 135

Что я здесь не понимаю? Это должно работать согласно спецификация где говорится, что псевдоним может разрешить путь к файлу.

Это потому, что запрос /mailcatcher.dev.png обратное проксирование в ваше бэкэнд-приложение как ProxyPass директива имеет более высокий приоритет, чем Alias

Вам нужно добавить ProxyPass /mailcatcher.dev.png ! запись до ProxyPass / http://127.0.0.1:1080/