Назад | Перейти на главную страницу

Обратный прокси IIS не работает без завершающей косой черты

У меня есть 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}.

Любые предложения о том, как заставить это работать без косой черты?

У меня была аналогичная проблема, и мне удалось ее исправить, создав два правила

  1. 301 перенаправление

шаблон поиска: ^ приложение $

URL перенаправления: app /

  1. переписать

шаблон поиска: ^ 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>