2012-02-07 44 views
0

我想获得一个URL重写,因此它采用例如my.site.com的URL并将其重写为“Http:// localhost:8080”。我不断收到默认主页,而不是重定向。我已经配置如下重写:IIS 7.5 URL重写不起作用?请帮助

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="mysite"> 
       <match url="(my.+)" /> 
       <action type="Rewrite" url="http://localhost:8080" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
</configuration> 

我很茫然,是不是我做错了什么???

任何帮助将不胜感激。

干杯 杰夫

回答

0

这是不是100%清楚你想达到和原因是什么,但是,因为localhost参与,看来你不想重写但也许执行HTTP 重定向重写意味着您的请求URL被改为另一个,比如index_foo.htm可以被重写为index.aspx?what = foo。

但是你想改变域名,所以你需要重定向。尝试:

<system.webServer> 
    <httpRedirect enabled="true" destination="http://localhost:8080" childOnly="false" /> 
</system.webServer> 

这将保持任何本地页面,你有所谓,我。即my.site.com/foo.htm将被重定向到localhost:8080/foo.htm。

因为这就像是用于开发目的的临时的事情,你可以添加

httpResponseStatus="Temporary" 

到httpRedirect(可能是为了不失去搜索引擎排名很重要)。

+0

嗨Olaf,感谢您的回复,我们正在实施一个使用Java应用程序的公共访问网站。该应用程序将在tomcat上运行,因此作为compaby安全要求我们不能让tomcat公众面对。所以我们希望所有的公共请求都进入IIS 7.5,然后将其重定向到tomcat。因此,将包含参数的所有my.site.com请求重定向到http:localhost:8080,这将是tomcat应用程序(端口8080是标称的)。 – user1153199 2012-02-07 23:32:01

+0

然后重定向将不起作用(获取本地主机的浏览器将尝试访问它运行的计算机)。我怀疑重写会起作用,至少不是开箱即用的(Tomcat的输出将不得不通过IIS路由到浏览器)。我不知道有什么工具可以支持,但你可以自己写。浏览器输入必须在内部转发到Tomcat,并将结果读取并发送回浏览器。 – Olaf 2012-02-08 09:51:05