在IIS中重定向部分网页

在IIS中重定向部分网页,iis,redirect,webpage,Iis,Redirect,Webpage,我在2008年服务器上的IIS中有一个“虚拟”网站,可以将用户重定向到正确的网站 出于历史原因,这个盒子,以及大家都知道的,是“mail.abc.com” “邮件”现在已经有了其他一些含义,但人们只需键入该名称或将其添加到书签中,就可以直接找到他们正在寻找的“服务类型” mail.abc.com(端口80或443)实际上重定向到->webmail.abc.com(端口443) webmail包含一个webportal,用户可以登录到他们的电子邮件中,但它也保存他们的个人网页。可以通过->mail

我在2008年服务器上的IIS中有一个“虚拟”网站,可以将用户重定向到正确的网站

出于历史原因,这个盒子,以及大家都知道的,是“mail.abc.com”

“邮件”现在已经有了其他一些含义,但人们只需键入该名称或将其添加到书签中,就可以直接找到他们正在寻找的“服务类型”

mail.abc.com(端口80或443)实际上重定向到->webmail.abc.com(端口443)

webmail包含一个webportal,用户可以登录到他们的电子邮件中,但它也保存他们的个人网页。可以通过->mail.abc.com/~他们的名字来访问这些文件

我想创建某种类型的规则,将其分为两部分(我们将这两个服务分为两个服务器-一个用于电子邮件部分,另一个用于其个人网页)

因此,如果您转到通用页面,重定向应该转到webmail.abc.com 但是如果有一个“~”,我想重定向到另一个位置=>webpages.abc.com/~他们的名字


我一直在寻找HTML重定向来实现这一点,但我不确定如何分割键入的URL,“根”URL可以很容易地重定向,但我如何为任何包含波浪线的URL构建内容?

如果您能够使用.htaccess,将具有以下配置的.htaccess文件放入
mail.abc.com
主机的根文件夹中:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/~(.*)
RewriteRule ^(.*)$ http://webpages.abc.com/~%1 [R=302,L]
RewriteCond %{REQUEST_URI} ^(.*)
RewriteRule ^(.*)$ http://webmail.abc.com%1 [R=302,L]
发生了什么:

  • 第2行和第3行是第一组RewriteCond和RewriteRule。如果在URL段中使用
    ~
    调用mail.abc.com,则第三行中的重写规则将重定向到only。因此,如果我尝试打开例如
    http://mail.abc.com/~m_eberhard
    我将被重定向到
    http://webpages.abc.com/~m_eberhard
  • 第4行和第5行中的下一组将把所有其他内容重定向到webmail.abc.com。如果我试图打开
    mail.abc.com/asdasdasd
    我将被重定向到
    webmail.abc.com/asdasdasd

  • 通常,您可以通过.htaccess管理此类重定向。为了使用它,IIS需要启用重写模块。你知道情况是否如此吗?你能使用.htaccess吗?我安装了重写模块,但我不清楚模式应该如何去除碎片并替换它们。我一直在尝试iis.net网站上的示例,但似乎没有掌握其中的诀窍。我使用了您的.htaccess信息和一个将其转换为web.config文件的网站。我能够让URL重写模块完成它的工作。谢谢你的指导。