我见过类似的问题,但似乎没有一个真正符合我现在的问题......
我有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&mgr=agm&agt=wsm&wnd=Connect Designer|defaultwindow&tpc=/robohelp/robo/server/en/projects/Connect Designer/Designer/{R:1}.htm&RINoLog28301=T&ctxid=&project=Connect Designer" appendQueryString="true" logRewrittenUrl="false" />
</rule>
这会给我一个404
错误,详细错误信息的处理程序为StaticFile
,错误代码为0x80070002
...但是,请求的网址是正确的,如果我只是从错误页面复制它并将其粘贴到另一个浏览器选项卡,它工作正常。
此外,如果我将规则从重写更改为重定向,它可以完美运行!
附加信息
我意识到的一件事是我确实有一些适用于重写的规则。而且,除了那些工作指向不是html的文件(我有一个CSS和一些javascript在那里)的事实,只有一个非常明显的区别:那些不起作用的指向一个由Tomcat应用程序(特别是RoboHelp Server)提供服务的HTML页面。我想知道这是不是一个相关点:如果IIS的重定向无法看到tomcat提供的页面,而我的浏览器没有问题呢?
答案 0 :(得分:1)
您可能需要查看iis日志。他们应该告诉你当404发生时iis试图服务的路径
答案 1 :(得分:1)
重写是内部的,在同一服务器内,因此服务器查找页面本身并且不要求tomcat查找它。
如果您已经向用户显示网址
,则始终使用重定向http://forums.iis.net/t/1174487.aspx?How+does+URL+Rewrite+differ+from+HTTP+Redirect+