如何通过IIS访问Plone站点

如何通过IIS访问Plone站点,iis,plone,reverse-proxy,Iis,Plone,Reverse Proxy,最近我花了一点时间来解决这个问题,我想我会分享它,以防其他人发现它有用 这里是设置,您已经在windows环境(在我的例子中是windows server 2008r2)中设置了一个Plone站点(我使用了3.3、4.0和4.3)。 您希望使用用户期望的URL显示此网站。 比如 这样,访问mysiteithis.com/aPage的用户就可以直接访问正确的页面,并且仍然可以看到正确的URL 这对于Apache来说已经有了很好的文档记录,但是对于IIS来说还没有真正的文档记录。我不能说这是因为大多

最近我花了一点时间来解决这个问题,我想我会分享它,以防其他人发现它有用

这里是设置,您已经在windows环境(在我的例子中是windows server 2008r2)中设置了一个Plone站点(我使用了3.3、4.0和4.3)。 您希望使用用户期望的URL显示此网站。 比如 这样,访问mysiteithis.com/aPage的用户就可以直接访问正确的页面,并且仍然可以看到正确的URL


这对于Apache来说已经有了很好的文档记录,但是对于IIS来说还没有真正的文档记录。我不能说这是因为大多数Plone站点的管理员决定采用linux和apache路径,还是因为他们认为这太容易了。无论如何,我将在下面描述我的解决方案,其中一个选项是enfold proxy,它可能是最先出现的东西之一。我当时没有意识到有一个免费版本,否则我可能会先调查一下;现在你仍然可以从我的经历中受益

因此,如果您不想使用enfold,那么还有另一个选项。 基本上你要做的就是设置一个反向代理

如果您已经安装了IIS(internet信息服务)(如果没有安装,您可以通过web平台安装程序找到)

您需要的其他事项包括:

  • URL重写模块
  • ARR(应用程序请求路由)
  • Plone安装在您的一台服务器/计算机上
这些也可以通过web平台安装程序找到(您也可以直接从microsoft网站下载其中任何一个)

  • 您要从那里打开IIS
  • 从列表中选择ARR(如果看不到,可能需要打开 直接使用IIS,而不是通过服务器管理器 你做了)
  • 选中启用代理选项
  • 确保勾选了“使用URL重写”选项(在“代理类型”下)
  • 在反向代理文本框中输入[pathToServer]:[port]
  • 如果plone与IIS pathToServer位于同一服务器上,则它将只是本地主机,否则它将是指向您的服务器的路径。端口将是在构建文件中设置的任何端口(默认为IT8080)[当然,您可以去掉方括号]

    现在,这只是一个问题或设置重写规则

  • 从IIS打开URL重写模块
  • 打开新创建的入站规则(很可能称为ARR_服务器_代理)
  • 在“匹配URL”下,使用正则表达式匹配模式
  • 此处的模式应为^(.*)
  • 从那里,在“操作”下选择“重写”
  • 在“重写url”部分:
  • 输入:

    http://[pathToServer]:[port]/VirtualHostBase/http/[mysiteisthis.com]:80/[nameofplonesite]/VirtualHostRoot/{R:1}
    
    例如,我的可能是:

    http://localhost:9090/VirtualHostBase/http/mysite.com:80/Plone/VirtualHostRoot/{R:1}
    
    这个virtualhostbase和virtualhostroot是Plone的一个包含部分(在Zope层中)的一部分,称为虚拟主机monster。它基本上告诉它,当你在网站上浏览时,让网站显示在mysite.com上

    让你知道关于第四部分。 ^表示URL的开头,即。表示任何事情,*表示任何次数。这里的圆括号告诉我们,它们里面的任何东西都将被捕获以供以后使用(在本例中,它将被放入{R:1}),您可以查找regex以获得关于它是什么以及其他使用方法的更多信息