Solon 暂时不支持这种自动跳转，主要是这种场景越来越少了，感觉不值得为它查询两次。

有跳转的，需要自己处理一下：

### 1、路径转发（浏览器地址不变）

```java
import org.noear.solon.annotation.Controller;
import org.noear.solon.annotation.Mapping;
import org.noear.solon.core.handle.Context;

@Controller
public class DemoController{
    @Mapping("/")
    public void home(Context ctx) {
        //在服务端重新路由到 /index.html （浏览器发生1次请求，地址不会变）
        ctx.forward("/index.html");
    }
}
```

或者使用过滤器（性能更好些）：

```java
import org.noear.solon.core.handle.Context;
import org.noear.solon.core.handle.Filter;
import org.noear.solon.core.handle.FilterChain;

public class DefaultFilter implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        if ("/".equals(ctx.pathNew())){
            ctx.pathNew("/index.html");
        }
        
        chain.doFilter(ctx);
    }
}
```

所有目录的 404 都转到 `index.html`：


```java
import org.noear.solon.core.exception.StatusException;
import org.noear.solon.core.handle.Context;
import org.noear.solon.core.handle.Filter;
import org.noear.solon.core.handle.FilterChain;
import org.noear.solon.annotation.Component;

@Component
public class DefaultFilter implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        try {
            chain.doFilter(ctx);
        } catch (StatusException e) {
            //如果 404 且路径以 / 结束（说明是目录）
            if (e.getCode() == 404 && ctx.pathNew().endsWith("/")) {
                ctx.forward(ctx.path() + "index.html");
            } else {
                throw e;
            }
        }
    }
}
```

### 2、路径重定向（浏览器地址会变）

```java
import org.noear.solon.annotation.Controller;
import org.noear.solon.annotation.Mapping;
import org.noear.solon.core.handle.Context;

@Controller
public class DemoController{
    @Mapping("/")
    public void home(Context ctx) {
        //通过302方式，通知客户端跳转到 /index.html （浏览器会发生2次请求，地址会变成/index.html）
        ctx.redirect("/index.html");
    }
} 
```   


