2017-07-26 34 views
0

我们启用了Kentio CI,并未考虑禁用它。我的情况是,我希望在部署在服务器上的Kentico网站的所有页面上都启用SSL,但希望在本地开发时禁用SSL。如何从Kentico 10中的CI中排除根页面?

我知道SSL可以通过转到文档根目录设置,然后将“Require SSL”无线电设置为“Yes”来启用。这工作很好,正是我想要的。

问题是,由于本地我们将此设置设置为“否”,并且我们启用了配置项,所以当我们部署到服务器时,本地设置将覆盖服务器,并且服务器根页面将设置设置回“否“我们必须手动切换它。

我知道有很多方法可以包括通过修改repository.config文件,并根据文档here排除在CI过程的对象,也可以从CI过程中排除个别objcects。特别值得注意的是文档中的这一行:

要排除页面(cms.document对象类型),请使用别名路径值而不是代码名称。这基于它们在内容树中的位置来标识页面。

我试图排除与下面的代码的网站的根页repository.config

<ObjectFilters> 
    <ExcludedCodeNames ObjectType="cms.document">/</ExcludedCodeNames> 
</ObjectFilters> 

没有这一行的根文件的任何修改都被标注为通过Git的修改,预计但在加入这一行的Git标记为删除的文档,如下截图:

Git status

也许这有望BEHA威尔,我只是不知道。

我想知道如何从CI中排除个别页面。任何帮助表示赞赏。

+3

为什么你不使用私有证书在IIS本地启用SSL?这将很容易解决问题,不需要任何愚蠢的CI配置。此外,它还允许您在本地测试事情,以确保您不会因HTTPS与HTTP发生错误。 –

+0

@BrendenKehren自从发布这个,这正是我所做的,但仍然想知道如果上述是可能的只是为了学习的缘故。 – tkha007

回答

2

屏幕截图上的内容是预期的行为 - 但这是你完全不想做的事情。 CI恢复首先删除所有文档和对象,然后导入CI文件夹中的内容。删除根文档将有效地防止导入任何其他文档,因为它不会有“父”。即使情况并非如此,您将不得不手动传输根文档的所有更改。

最佳实践是在Brenden建议的开发机器上设置SSL。

另一种选择是使用DocumentEvents并根据某些标准(例如当前域名)更改SSL设置。但是这会带来不必要的错误倾向。

+0

感谢您的解释。由于所获得的知识将其标记为答案。我已经在本地启用了SSL,并将继续前进。 – tkha007

2

使用专用证书在IIS中本地启用SSL。这将很容易解决问题,不需要任何高级的Kentico CI配置。此外,它还允许您在本地进行测试,以确保您在推广到其他环境时不会因HTTPS与HTTP发生错误。