我有一个使用SSL的WSS 3.0系统,其中每个页面都应该作为https提供。几乎所有页面都以https形式出现,但在某些情况下,我点击一个链接,这会打开一个页面的http版本(不加载)。在这些情况下,我必须手动放入's'来加载页面。发生这种情况的地方是:
为了解决这个问题,我尝试在搜索http实例的DOM中添加一些javascript,并用https替换它们。这在某些情况下有效,但有些地方javascript无法访问,例如当SharePoint提供目标URL以响应POST请求时,我认为是newgrp / edtgrp.aspx。
我还尝试添加ISAPI过滤器,将页面从http重定向到https。这似乎导致重定向循环,并且在任何情况下我都不确定这些过滤器是否会保留查询字符串或POST信息。
有没有人见过这个问题?
更新:我们已从Squid切换到ISA,问题在版本历史记录中继续存在,但在新组或编辑组中没有。我们还没有看到任何改进AAM设置的改进。
在ISA中发生这种情况的地方:
答案 0 :(得分:3)
不确定是不是这样,但您是否检查了备用访问映射,以确保他们说的是https而不是http?
答案 1 :(得分:1)
我会回应检查您的备用访问映射的建议。 SSL是在SharePoint前端完成的,还是通过一个专用的SSL硬件完成的?
答案 2 :(得分:1)
使用 HTTP模块修改SharePoint的输出,以便链接始终更改为https
。这样的模块可以插入IIS并修改任何渲染的HTML。我已经使用这种技术使SharePoint XHTML兼容并且运行良好。
更好的是,几乎所有的工作都已经完成了。 UrlRewritingNet模块是开源的,可以免费下载。它应该适用于您的SharePoint站点。此工具具有出色的文档,并使用正则表达式来匹配要更改的URL。为你的案例编写一个应该很容易,例如^http://
。如有必要,还可以使用更多高级选项。
如果您更喜欢自己编写,那么15秒网站上有一篇名为Rewrite.NET -- A URL Rewriting Engine for .NET的好文章。
最后,如果您使用的是IIS 7,则可以尝试使用URL Rewrite Module。我自己从未使用过它,也不知道它是否适用于SharePoint,但它是最受UI驱动的解决方案。
答案 3 :(得分:0)
在IIS中将重定向从http添加到https。每次访问该页面时,它都会将您重定向到您的https页面。
我还建议将WSS放在另一台服务器上,看看你是否遇到同样的问题。如果不这样做,您可能需要重建/迁移您的东西。
答案 4 :(得分:0)
看起来当加载SharePoint aspx页面时,它会填充ContextInfo类型的javascript结构(在init.js中定义),该结构在变量ctx中实例化。该结构有一个名为httpRoot的成员,后来在core.js中用于在各种下拉列表中构建菜单项。
这个ctx.httpRoot由于某种原因填充在SharePoint创建的aspx文件中的javascript中,其行如下所示:
ctx.HttpRoot = "http:\u002f\u002fsubdomain.domain.com";
是的,它有Unicode斜杠,它有http而不是https。我不知道为什么。但是,修复这行javascript似乎解决了这个问题。
我通过在ISA中添加URL转换规则来更改该行,该规则将http:\ u002f \ u002f \转换为https:\ u002f \ u002f \。我怀疑使用相同替换的HTTP模块也可以工作。或者可能是一些在某些时候重新分配变量的javascript。
我仍然认为这不太理想,必须有更合适的方法来修复这些链接。