У меня есть IIS с URL Rewrites, действующий как обратный прокси для Apache Tomcat.
example.com/app/ перенаправляет на example.com:8080/app/. Порт 80 перенаправляет на порт 8080 на том же сервере.
Если я перейду на example.com/app/, он будет работать, как ожидалось. Однако, если я перейду на example.com/app (без косой черты), это приведет к ошибке 404.
Шаблон, который я подбираю для правила входящего трафика: ^app/(.*)
. Затем действие переписывается в URL http://127.0.0.1:8080/app/{R:1}
.
Любые предложения о том, как заставить это работать без косой черты?
У меня была аналогичная проблема, и мне удалось ее исправить, создав два правила
шаблон поиска: ^ приложение $
URL перенаправления: app /
шаблон поиска: ^ app /(.*)
переписать URL: http://127.0.0.1:8080/app/{R: 1}
Чтобы подробнее рассказать об ответе Томаса, вот конфигурационный файл после создания правил:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="ReverseProxyInboundRule2" stopProcessing="true">
<match url="^app$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Redirect" url="app/" />
</rule>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://localhost:8080/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>