Mod-Rewrite
反向代理登錄頁面
我正在努力讓我的反向代理按需要工作……我的 Apache 實例應該作為後端應用程序伺服器的反向代理工作,如下面的 proxypass/proxyreverse 指令中指定的那樣。期望的行為是:客戶端請求
https://my_website/context_path
。此請求應重定向到http://my_backend/context_path/loginServlet
所有其他請求應反向代理到後端伺服器。RewriteEngine on RewriteCond "%{REQUEST_URI}" "https://my_website/context_path" RewriteRule ^/my_website$ http://my_backend/context_path/loginServlet$1 ProxyPass /my_website/ http://my_backend/context_path/ ProxyPassReverse /my_website/ http://my_backend/context_path/
任何幫助表示讚賞。提前謝謝了。
嗯.. 您確定要將所有登錄重定向到後端直接提供的純 HTTP 頁面嗎?您的後端伺服器甚至可以從外部訪問嗎?如果真的是這樣,有可能:
<VirtualHost *:443> ServerName my_website.example.com ... RedirectMatch "^/context_path$" "http://my_backend.example.com/context_path/loginServlet" ProxyPass /context_path/ http://my_backend.example.com/context_path/ ProxyPassReverse /context_path/ http://my_backend.example.com/context_path/ </VirtualHost>
但我認為您實際上正在努力實現這一目標;重定向到您的代理而不是後端:
<VirtualHost *:443> ServerName my_website.example.com ... RedirectMatch "^/context_path$" "/context_path/loginServlet" ProxyPass /context_path/ http://my_backend.example.com/context_path/ ProxyPassReverse /context_path/ http://my_backend.example.com/context_path/ </VirtualHost>
請注意,我使用
RedirectMatch
了 from mod_alias 而不是RewriteRule
from mod_proxy,因為對於這種簡單的外部重定向來說已經足夠了,而且可能也更容易理解。