# 路由地址 ## 路由重定向 重定向的外部地址必须以“/”或者http开头的地址。 如果路由地址以“/”或者“http”开头则会认为是一个重定向地址或者外部地址,例如: ``` Route::get('blog/:id','/blog/read/id/:id'); ``` 和 ``` Route::get('blog/:id','blog/read'); ``` 虽然都是路由到同一个地址,但是前者采用的是301重定向的方式路由跳转,这种方式的好处是URL可以比较随意(包括可以在URL里面传入更多的非标准格式的参数),而后者只是支持模块和操作地址。举个例子,如果我们希望`avatar/123`重定向到 /member/avatar/id/123_small的话,只能使用: ``` Route::get('avatar/:id','/member/avatar/id/:id_small'); ``` 路由地址采用重定向地址的话,如果要引用动态变量,直接使用动态变量即可。 采用重定向到外部地址通常对网站改版后的URL迁移过程非常有用,例如: ``` Route::get('blog/:id','http://blog.thinkphp.cn/read/:id'); ``` 表示当前网站(可能是 `http://thinkphp.cn` )的 blog/123地址会直接重定向到 `http://blog.thinkphp.cn/read/123`。 路由重定向默认使用301状态吗,可以使用status方法单独设置,例如: ``` Route::get('blog/:id','http://blog.thinkphp.cn/read/:id')->status(302); ``` `V5.1.3+` 版本开始,可以直接使用 `redirect` 方法注册一个重定向路由 ``` Route::redirect('blog/:id','http://blog.thinkphp.cn/read/:id',302); ```