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

Apache ProxyPass для Tomcat - как удалить контекстный путь из URL-адреса?

У меня есть конфиг Apache:

<IfModule mod_ssl.c>
<VirtualHost *:443>

    ServerName project.example.com
    ServerAlias ci
    ProxyRequests Off

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPreserveHost on
    ProxyPass / http://localhost:1111/project

    SSLCertificateFile /etc/letsencrypt/live/sub.example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/sub.example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/sub.example.com/chain.pem

</VirtualHost>
</IfModule>

Когда я вхожу project.example.com, Я получил https://project.example.com/project/users/sign_in в браузере. Как удалить контекстный путь из URL? я хочу удалить project из URL и получить https://project.example.com/users/sign_in ?

Итак, сначала нужно удалить корень контекста из приложения. Если вы не определите контекст как / (пусто), вы не сможете получить доступ к приложению без корневого контекста.

это Решение должен дать вам представление о том, как изменить корень контекста. Когда вы закончите с шагами, вы сможете получить доступ к своему приложению на http: // локальный: 1111 /.

Затем зайдя в конфигурацию httpd, удалите название проекта:

ProxyPass / http://localhost:1111/

Я думаю, вам не хватает косой черты в конце:

ProxyPass / http://localhost:1111/project/

Также неплохо определить соответствующий ProxyPassReverse:

ProxyPassReverse / http://localhost:1111/project/