Я видел похожие проблемы, но ни одна из них, похоже, не соответствует моей проблеме сейчас...
У меня есть модуль url-rewrite-module IIS7, и я пытаюсь установить то, что я считаю «простой» перезаписью. Вот что я использую:
<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
... однако запрошенный URL-адрес является правильным, если я просто скопирую его со страницы ошибки и вставлю в другую вкладку браузера, все работает нормально.
Кроме того, если я изменю правило с перезаписи на перенаправление, оно работает отлично!
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Одна вещь, которую я понял, это то, что у меня есть некоторые правила, которые работают с переписыванием. И, помимо того факта, что те, которые работают, указывают на файлы, которые не являются html (у меня есть CSS и какой-то javascript), есть только одна очень четкая разница: те, которые не работают, указывают на файл. HTML-страница, обслуживаемая приложением Tomcat (в частности, сервером RoboHelp). Мне интересно, если это не относится к делу: что, если перенаправление IIS не видит страницу, обслуживаемую tomcat, тогда как у моего браузера с этим проблем нет?