我正在尝试使用Mellon身份验证的反向代理。我已经启用了mod_rewrite和mod_proxy模块。
我为应用程序提供的实际URL:“ https://elkdev.automation.pega.io”
以下是443端口上的apache配置文件:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^https://login.microsoftonline.com/$ [NC]
RewriteRule ^(/.*)?$ http://elkdevhost.automation.pega.io:5601/ [P]
ProxyPassReverse / http://elkdevhost.automation.pega.io:5601/
<Location />
Require valid-user
AuthType "Mellon"
MellonEnable "auth"
MellonSPMetadataFile "/etc/apache2/saml2/mellon_metadata.xml"
MellonSPPrivateKeyFile "/etc/apache2/saml2/mellon.key"
MellonSPCertFile "/etc/apache2/saml2/mellon.crt"
MellonIdPMetadataFile "/etc/apache2/saml2/idp_metadata.xml"
</Location>
当我点击“应用程序URL”时,该页面使用 Location 的配置重定向到IDP身份验证页面(Microsoft)。身份验证完成后,IDP页面回复URL将为应用程序URL(https://elkdev.automation.pega.io),该URL与初始URL相同。因此,请求再次返回到同一页面。现在,为了区分请求,我将HTTP_REFFERER标志与 RewriteCond 一起使用。当此条件匹配时,将执行 RewriteRule ,因此请放置一个代理URL。
在这里,带有 [P] 的RewriteRule无法正常工作,并显示404错误。
RewriteRule ^(/.*)?$ http://elkdevhost.automation.pega.io:5601/ [P]
带有 [R] 标志的它可以正确地重定向到给定的URL。但是URL也在按预期变化(如预期)。
RewriteRule ^(/.*)?$ http://elkdevhost.automation.pega.io:5601/ [R]
我的问题是为什么我在使用 [P] 标志
时不进行代理