omo reescrever / proxy um URI do Apache para um aplicativo que está ouvindo em uma porta / servidor específic

Eles dizem que o mod_rewrite do Apache é o canivete suíço da manipulação de URL, mas pode fazer isso?

Digamos que eu queira adicionar um novo aplicativo ao meu servidor Apache, onde a única opção configurável do aplicativo é um número de port

Eu quero usar e fornecer URLs do formulário "http: //hostname.example.com/ap" ao invés de "http: //hostname.example.com: 8080 ". Isso garantiria que os clientes também passassem pelo firewall da instituição, e geralmente é mais organizad

aplicativo @My inclui URIs absolutos em php, javascript e css; portanto, quero acrescentar meu próprio local de raiz ao URI nos links internos do aplicativo. Não tenho acesso aos registros DNS e, portanto, não consigo criar outro servidor virtual baseado em nom

Usando os módulos mod_rewrite e mod_proxy do Apache, posso redirecionar um cliente de forma transparente para a página inicial correta do aplicativo. Mas os links nessa página inicial não apontam um cliente para os links relativos ao novo URL base.

ntão, qual é a melhor maneira de fazer proxy de uma solicitação para um aplicativo que está escutando em uma porta específic

Por exemplo, se eu tivesse um aplicativo escutando na porta 8080, poderia colocar isso na minha configuração do Apache: -

<VirtualHost *:80>
    SSLProxyEngine On
    ServerName myhost.example.com
    RewriteEngine On
    UseCanonicalName On
    ProxyVia On
    <Location "/application">
        RewriteRule ^/application/?(.*) http://localhost:8080/$1 [P,L]
    </Location>
</VirtualHost>

Isso funcionaria bem se o aplicativo não usasse URLs absolutos, mas usa. O que preciso fazer é reescrever os URLs retornados pelo css, javascript e php do aplicativo.

Eu olhei para a documentação do ProxyPass e do ReverseProxyPass, mas acho que não funcionaria ..?

Eu também me deparei com @ Nick K mod_proxy_html, mas isso não está incluído no Apache Distribution padrão, e o servidor da web da minha instituição parece ter funcionado há anos sem ele. Além de rastrear manualmente (ou usar uma expressão do tipo grep -r | sed) através do código-fonte do aplicativo , ou usando este complemento de terceiros, existem outras maneiras de fazer isso?

Devo usar algumas das variáveis internas do servidor em uma regra mod_rewrite? Por exemplo, uma regra de reescrita com base em 'HTTP_REFERER'?

questionAnswers(1)

yourAnswerToTheQuestion