You could list all the rewrite rules you need in your web configuration
If there aren't many of those, you can configure redirect views like this
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/my/path/", "/my/path")
.setKeepQueryParams(true)
.setStatusCode(HttpStatus.PERMANENT_REDIRECT);
}
But interceptors occur before requests are mapped to a specific Controller.action
and you've got no way of knowing Controllers and actions in that context.
All you've got is HTTPServlet API and request+response; so you can:
response.sendRedirect("http://example.org/whitout-trailing-slash");
The answer you don't want to read
This behavior (URL with trailing slash = URL without it) is perfectly "valid" when considering HTTP. At least this is the default behavior with Spring, that you can disable with useTrailingSlashMatch
(see javadoc).
So using rewrite/redirect rules on the front-end server could a solution; but again, I don't know your constraints (maybe you could elaborate on this and we could figure out other solutions?).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…