URL重定向工作正常,但重写提供404

时间:2014-01-17 17:12:47

标签: tomcat iis-7 url-rewrite-module

我见过类似的问题,但似乎没有一个真正符合我现在的问题......

我有IIS7 url-rewrite-module,我正在尝试建立我认为是“简单”的重写。这是我正在使用的:

            <rule name="PPConnectDesigner" enabled="true" stopProcessing="true">
                <match url="^en/planetpress_connect_designer/(.*?).(html|htm)$" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="/robohelp/server?area=en&amp;mgr=agm&amp;agt=wsm&amp;wnd=Connect Designer|defaultwindow&amp;tpc=/robohelp/robo/server/en/projects/Connect Designer/Designer/{R:1}.htm&amp;RINoLog28301=T&amp;ctxid=&amp;project=Connect Designer" appendQueryString="true" logRewrittenUrl="false" />
            </rule>

这会给我一个404错误,详细错误信息的处理程序为StaticFile,错误代码为0x80070002 ...但是,请求的网址是正确的,如果我只是从错误页面复制它并将其粘贴到另一个浏览器选项卡,它工作正常。

此外,如果我将规则从重写更改为重定向,它可以完美运行!

附加信息

我意识到的一件事是我确实有一些适用于重写的规则。而且,除了那些工作指向不是html的文件(我有一个CSS和一些javascript在那里)的事实,只有一个非常明显的区别:那些不起作用的指向一个由Tomcat应用程序(特别是RoboHelp Server)提供服务的HTML页面。我想知道这是不是一个相关点:如果IIS的重定向无法看到tomcat提供的页面,而我的浏览器没有问题呢?

2 个答案:

答案 0 :(得分:1)

您可能需要查看iis日志。他们应该告诉你当404发生时iis试图服务的路径

答案 1 :(得分:1)

重写是内部的,在同一服务器内,因此服务器查找页面本身并且不要求tomcat查找它。

如果您已经向用户显示网址

,则始终使用重定向

http://forums.iis.net/t/1174487.aspx?How+does+URL+Rewrite+differ+from+HTTP+Redirect+