当前位置:  开发笔记 > 运维 > 正文

mod_rewrite用于尾随斜杠问题

如何解决《mod_rewrite用于尾随斜杠问题》经验,为你挑选了2个好方法。

我正在把头发拉出来,应该是一个非常简单的问题.我们通过F5 BigIP运行WebSphere IHS(Apache).BigIP正在为我们进行https翻译.我们的网址(已更改为网页,无效)为https://superniftyserver.com/lawson/portal.

当有人在门户网站之后没有斜杠的情况下输入时,Apache假定"门户"是文件而不是目录.当Apache发现它是什么时,它会发送301永久重定向.但由于Apache只知道http,它会将URL发送为http://superniftyserver.com/lawson/portal/,然后会产生问题.

所以我尝试了mod_rewrite的服务器级httpd.conf更改,这是我尝试过的几十种组合之一.

RewriteRule上的RewriteEngine ^/lawson/portal(.*)/ lawson/portal/$ 1

我也试过RewriteRule ^/lawson/portal $/lawson/portal /

还有很多其他的事情......我错过了什么?



1> Kevin Hakans..:

如果你无法得到RewriteRule语法的答案,这里有两个其他选项:在BigIp上编写一个自定义iRule(参见F5 DevCentral),查找301个响应并将它们转换为SSL; 让URL传递到您的WebSphere服务器并执行发送HTTPS的编程重定向.但是,由于F5终止了SSL连接,因此必须设置您配置的自定义标头(请参阅PQ86347),以便Java request.getScheme()按预期工作.



2> 小智..:

固定!

SOL6912:配置HTTP配置文件以重写URL,以便从HTTP服务器重定向指定HTTPS协议


更新时间:8/7/07 12:00 AM

ClientSSL虚拟服务器通常配置为接受来自客户端的HTTPS连接,解密SSL会话,并将未加密的HTTP请求发送到Web服务器.

当请求的URI不包含尾部斜杠(正斜杠,例如/,在URI的末尾)时,某些Web服务器会生成礼貌重定向.如果没有尾部斜杠,Web服务器将首先将URI中指定的资源视为文件.如果找不到该文件,Web服务器可能会搜索具有相同名称的目录,如果找到,请使用尾部斜杠将HTTP 302重定向响应发送回客户端.重定向将以HTTP模式而不是HTTPS返回到客户端,从而导致SSL会话失败.

以下是HTTP 302重定向响应如何导致SSL会话失败的示例:

·要请求SSL会话,用户键入https://www.f5.com/stuff,不带斜杠.

·客户端浏览器向ClientSSL虚拟服务器发送SSL请求,该服务器驻留在BIG-IP LTM系统上.

·BIG-IP LTM系统然后解密请求并向Web服务器发送GET/stuff命令.

·由于/ stuff文件在Web服务器上不存在,但存在/ stuff /虚拟目录,因此Web服务器会为该目录发送HTTP 302重定向响应,但会向该资源附加一个尾部斜杠.当Web服务器发送HTTP 302重定向响应时,它指定HTTP(而不是HTTPS).

·当客户端收到HTTP 302重定向响应时,它会向BIG-IP LTM虚拟服务器发送一个指定HTTP(而不是HTTPS)的新请求.因此,SSL连接失败.

配置HTTP配置文件以重写URL

在BIG-IP LTM版本9.x中,您可以配置HTTP配置文件以重写URL,以便从HTTP服务器重定向指定HTTPS协议.为此,请执行以下过程:

    登录配置实用程序.

    单击本地流量.

    单击配置文件.

    单击"创建"按钮.

    输入配置文件的名称.

    从父配置文件下拉菜单中选择http.

    在"设置"下,根据您的配置将"重定向重写"设置为"全部","匹配"或"节点"

例如:

o选择"全部"以将任何HTTP 301,302,303,305或307重定向重写为HTTPS

o当请求的路径和查询URI组件与重定向相同时,选择"匹配"以重写重定向(尾部斜杠除外)

o当重定向URI包含节点IP地址而不是主机名时,选择节点重写重定向,并且您希望系统将其更改为虚拟服务器地址

    单击完成.

您现在必须将新的HTTP配置文件与ClientSSL虚拟服务器相关联.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有