Проблема перенаправления URL-адресов Tomcat - PullRequest
1 голос
/ 27 апреля 2020

Tomcat: 8.5.30 Java 8 ОС: macOS Mojave 10.14.6

В качестве примера проекта я пытаюсь перенаправить любой URL: / {dynamicValue} / entity / {entityID} в / объект / {dynamicValue} / объект / {EntityId}. Здесь «entity» является моим контекстом и будет ссылаться на entity.war внутри каталога webapps.

Файл контекста (путь: apache -tomcat-8.5.30 / conf / context. xml):

<Context docBase="ROOT" path="/" reloadable="true" crossContext="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/>
</Context>

Файл RewriteConfig: (Путь: apache -tomcat-8.5.30 / webapps / ROOT / WEB_INF / rewrite.config. xml)

RewriteRule ^/(.*)/(.*)/(.*)$   $2/$1/$2/$3 [L,NE]

Открытая конечная точка : / {dynamicValue} / entity / {entityID}

Внутренняя конечная точка: / entity / {dynamicValue} / entity / {entityID}

Любой вызов, напрямую выполненный для «Внутренней конечной точки», работает нормально. Но вызовы API к «Открытой конечной точке» не перенаправляются на «Внутреннюю конечную точку». (возвращая 404)

Есть предложения?

Ссылка: Переписать кота 8 URL

1 Ответ

1 голос
/ 28 апреля 2020

Ошибка в имени файла rewrite.config.

Кроме того, Tomcat не поддерживает контексты, основанные на динамическом / регулярном выражении, и это из-за четко определенных принципов. Если у вас есть такой вариант использования, я бы настоятельно посоветовал выяснить точную необходимость в этом, и если бы вы могли улучшить моделирование.

...