您可以列出您的Web配置中所需的所有重写规则
如果没有很多,您可以像这样配置重定向视图
@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addRedirectViewController("/my/path/", "/my/path") .setKeepQueryParams(true) .setStatusCode(HttpStatus.PERMANENT_REDIRECT); }或者您可以创建一个自定义HandlerInterceptor
但是拦截器是在将请求映射到特定对象之前发生的
Controller.action,因此您无法了解该上下文中的Controller和操作。
您所拥有的只是HTTPServlet API和request + response;这样你就可以:
response.sendRedirect("http://example.org/whitout-trailing-slash");您不想读的答案
考虑HTTP时,此行为(带斜杠的URL
=不带URL的URL)完全“有效”。至少这是Spring的默认行为,您可以使用禁用它
useTrailingSlashMatch(请参阅javadoc)。
因此,在前端服务器上使用重写/重定向规则可能是一种解决方案。但是同样,我不知道您的限制(也许您可以对此进行详细说明,我们可以找出其他解决方案?)。



