由于公司购买了windows azure服务,想把本地的两台sharepoint server放在windows azure上,为了节省成本,想把两台sharepoint服务放在一台机器上,前提是之前的访问方式不变;了解需求后,就在网上找案例,最终无果。最后想到了通过apache进行跳转也行。我的想法是。将其中一台sharepoint服务作为一个子站点来部署,然后通过权限控制。最后通过apache进行跳转,这样也能达到效果。经过多次折腾终于实现了。所以在此分享给有需要的朋友。
我们都知道Sharepoint默认站点的访问方式(父站点)为localhost.default.aspx;端口默认是80;在父站点下创建子站点,创建的时候需要指定一个路径,在此我指定it,所以子站点的访问地址为http://localhost/it/default.aspx
注:如果用户访问子站点的话默认有两种:1.登录父站点单击子站点进行跳转。2.输入子站点的绝对路径进行访问。如果要想设置,用户通过指定域名无需添加指定路径,需要通过apache进行跳转;apache默认的端口为80,当然可以更改为其他端口,但是为了保证用户跳转不需要输入端口,我们需要更改sharepoint站点,需要在iis下更改端口。为了保证不冲突,我们将sharepoint的端口从默认的80更改为8080,然后修改防护墙设置,允许8080通过。
Apache默认端口也是80,
更改后访问的结果:
例子:
访问:iiowss.iiosoft.com------http://iiowss.iiosoft.com/default.aspx
Iiowss2.iiosoft.com------àhttp://iiowss.iiosoft.com/it/default.aspx
Apache进行跳转:
在sharepoint安装apache修改配置文件添加以下内容:(需要将自定意的跳转修改即可)
因为我环境内只有一台公网机器,所以在跳转的时候写成了IP地址。在真是环境内,只需要创建对应的A记录即可。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^iiowss2.iiosoft.com [NC]
RewriteRule ^(.*) http://x.x.x.x:8080/it/default.aspx
RewriteEngine on
RewriteCond %{HTTP_HOST} ^iiowss.iiosoft.com [NC]
RewriteRule ^(.*) http://x.x.x.x:8080/default.aspx/ [L]
添加以上内容后,我们需要访问iiowss.iiosoft.com即可,自动会跳转到http://x.x.x.x:8080/default.aspx(父站点)
访问iiowss2.iiosoft.com会自动跳转到http://x.x.x.x:8080/it/default.aspx(子站点)
通过apache进行跳转访问
跳转成功
访问链接2
跳转成功