强制WebDispatcher对所有URL使用SSL

2020-08-21 01:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在为后端系统使用几个虚拟主机名(URL)。 前面是一个Webdispatcher,我们在其中使用参数SRCVHOST来基于(虚拟)主机名转发请求。 这很好。

对于重定向到例如启动板或门户,我们使用参数icm/HTTP/redirect_x,它也可以正常工作。 (例如PREFIX =/,FOR = <门户的外部主机名>,TO =/irj/portal/)

现在,我想对HTTPS强制执行所有流量。 根据文档,这也应该使用相同的参数来完成。 例如,来自 help.sap.com ,页面底部的示例:

icm/HTTP/redirect_0 = PREFIX =/,FROM = *,FROMPROT = http,PROT = https,HOST = px155.sap.com

所有HTTP请求都重定向到HTTPS

这根本不是事实! 这确实从http重定向到https,但是仅针对主机名 px155.sap.com ! ! 在这种情况下,所有其他已访问的主机名都重定向到 px155.sap.com

>

另一种可能性是使用URL重写:

如果%{SERVER_PROTOCOL}!stricmp" https"

开始

RegIRedirectUrl/(.*)https://%{HTTP_HOST}/$ 1?%{QUERY_STRING} [code = permanent]

结束

但这确实一样! 我尝试为每个主机名添加重定向,但是始终应用​​第一个规则。

有人可以对所有流量,所有主机名强制执行https并且不更改URL吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在为后端系统使用几个虚拟主机名(URL)。 前面是一个Webdispatcher,我们在其中使用参数SRCVHOST来基于(虚拟)主机名转发请求。 这很好。

对于重定向到例如启动板或门户,我们使用参数icm/HTTP/redirect_x,它也可以正常工作。 (例如PREFIX =/,FOR = <门户的外部主机名>,TO =/irj/portal/)

现在,我想对HTTPS强制执行所有流量。 根据文档,这也应该使用相同的参数来完成。 例如,来自 help.sap.com ,页面底部的示例:

icm/HTTP/redirect_0 = PREFIX =/,FROM = *,FROMPROT = http,PROT = https,HOST = px155.sap.com

所有HTTP请求都重定向到HTTPS

这根本不是事实! 这确实从http重定向到https,但是仅针对主机名 px155.sap.com ! ! 在这种情况下,所有其他已访问的主机名都重定向到 px155.sap.com

>

另一种可能性是使用URL重写:

如果%{SERVER_PROTOCOL}!stricmp" https"

开始

RegIRedirectUrl/(.*)https://%{HTTP_HOST}/$ 1?%{QUERY_STRING} [code = permanent]

结束

但这确实一样! 我尝试为每个主机名添加重定向,但是始终应用​​第一个规则。

有人可以对所有流量,所有主机名强制执行https并且不更改URL吗?

付费偷看设置
发送
1条回答

你好,

根据您的评论,参数" icm/HTTP/redirect_X"将按预期工作。

您必须创建一个HTTP- >每个虚拟主机名的HTTPS重定向参数。

例如:

  • icm/HTTP/redirect_0 = PREFIX =/,FROM = *,FROMPROT = http,PROT = https, FOR = <虚拟主机名1>,HOST = <虚拟主机名1>
  • icm/HTTP/redirect_1 = PREFIX =/,FROM = *,FROMPROT = http,PROT = https,FOR = <虚拟主机名2>,HOST = <虚拟主机名2>
  • ,依此类推。

关于您尝试创建的修改规则,您的IF条件仅测试协议,而不测试主机名。 所以是的,第一个规则将始终适用。

我可能会使用" HTTP_HOST_NAME"而不是" HTTP_HOST",因为后者包含端口号,这是不希望的。
我相信 尽管我没有时间进行测试,但是以下代码可以解决问题:

如果%{SERVER_PROTOCOL}!stricmp" https"
RegIRedirectUrl ^/(。*)https://%{ HTTP_HOST_NAME}/$ 1?%{QUERY_STRING} [code = permanent]

此致

伊萨尼亚

一周热门 更多>