您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何将带有斜杠的URL重定向到不带斜杠的相应URL?

如何将带有斜杠的URL重定向到不带斜杠的相应URL?

Web配置中所需的所有重写规则 如果没有很多,你可以像这样配置重定向视图

@Configuration
public 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

因此,在前端服务器上使用重写/重定向规则可能是一种解决方案。但是同样,我不知道你的限制(也许你可以对此进行详细说明,我们可以找出其他解决方案?)。

其他 2022/1/1 18:22:48 有709人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶