redirect
note
http_to_https
、uri
和regex_uri
只能配置其中一个属性。http_to_https
、和append_query_string
只能配置其中一个属性。- 当开启
http_to_https
时,重定向 URL 中的端口将按如下顺序选取一个值(按优先级从高到低排列)- 从配置文件(
conf/config.yaml
)中读取 。 - 如果
apisix.ssl
处于开启状态,读取apisix.ssl.listen
并从中随机选一个port
。 - 使用 443 作为默认
https port
。
- 从配置文件(
以下示例展示了如何在指定路由中启用 redirect
插件:
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"plugins": {
"redirect": {
"uri": "$uri/index.html",
"ret_code": 301
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"127.0.0.1:80": 1
}
}
通过上述命令启用插件后,可以使用如下命令测试插件是否启用成功:
HTTP/1.1 301 Moved Permanently
Date: Wed, 23 Oct 2019 13:48:23 GMT
Content-Length: 166
Connection: keep-alive
Location: /test/default.html
...
以下示例展示了如何将 HTTP 重定向到 HTTPS:
curl http://127.0.0.1:9080/hello -i
当你需要禁用 redirect
插件时,可以通过如下命令删除相应的 JSON 配置,APISIX 将会自动重新加载相关配置,无需重启服务:
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/test/index.html",
"plugins": {},
"upstream": {
"type": "roundrobin",
"nodes": {
"127.0.0.1:80": 1
}