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

Apache2 ProxyPassReverse неправильно переписывает URL-адрес

У меня есть конфигурация виртуального хоста apache ниже. ProxyPassReverse, похоже, неправильно конвертирует URL-адреса.

URL http://www.example.com/9999pcap/ показывает список каталогов на удаленном устройстве, и список каталогов выглядит нормально, но если вы нажмете на файл captype1.pcap1.gz чтобы скачать это вы получите

Запрошенный URL /captype1.pcap1.gz не найден на этом сервере.

и в строке URL отображается /captype1.pcap1.gz. Если вы вручную измените URL-адрес на /9999pcap/captype1.pcap1.gz он правильно загружает файл.

[Sat Dec 06 19:19:33.265254 2014] [core:info] [pid 22470:tid 139711796442880] [client 127.0.0.1:56469] AH00128: File does not exist: /var/www/html/captype1.pcap1.gz, referer: http://www.example.com/9999pcap/

URL /9999/ показывает страницу входа в систему удаленного устройства, но выглядит неправильно, потому что оно неправильно загружает таблицы стилей и другие файлы, а попытка входа в систему не выполняется с помощью

Запрошенный URL / cgi-bin / luci / не найден на этом сервере.

Может ли кто-нибудь сказать мне, что я здесь делаю не так? Спасибо!

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        DirectoryIndex index.html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        LogLevel debug

        ProxyRequests Off
        ProxyPreserveHost Off

        <Proxy *>
                Order Allow,Deny
                Allow from all
        </Proxy>

        <Location /9999/>
                ProxyPass http://localhost:22002/cgi-bin/luci/
                ProxyPassReverse http://localhost:22002/cgi-bin/luci/
        </Location>
        <Location /9999pcap/>
                ProxyPass http://localhost:22003/
                ProxyPassReverse http://localhost:22003/
        </Location>
</VirtualHost>

apache proxypassreverse имя сервера не работает

Я отказался от этого метода, так как он не работает должным образом. Простая замена URL-адресов вручную работает нормально, как показано в этом сообщении.

<Location /9999pcap/>
        ProxyPass http://localhost:22003/
        ProxyPassReverse http://localhost:22003/
        Substitute s>href='/>href='/9999pcap/>
        SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
        RequestHeader unset Accept-Encoding
</Location>