重定向
这是个很常用功能,和 NGINX 提供的 rewrite 指令类似,却更简明易懂。
它属于应用的页面规则
,我们直接新建一个页面规则来看看如何使用。
动作
的下拉列表里面有很多选项,我们拉到 “响应动作”,从中选择重定向。
重定向的参数会比较多,我们分别解释下:
- URL: 默认是当前 URL,不做更改。你可以下拉框里面选择自定义,输入另外一个 URL;
- URL 参数:默认是不带参数,你可以选择使用当前的 URL 参数或者是自定义;
- 协议:默认是当前请求的协议,可以另外选择 http 或者 https;
- 主机名: 默认是当前请求的主机名,可以自定义;
- 端口: 如果协议是 http 那么默认是80,如果是 https 默认就是443,一样可以自定义;
- 代码: 默认是 302,可以自行从下拉框中选择;
下面的示例,是把 http 的请求重定向到 https,其他不做变化:
设置完条件后,我们来设置重定向:
那么这个限制规则到底生效没有呢?我们来验证下。
我们首先要进入发布
页面,把这个规则同步到所有网关的节点中去。
如果发布可以查看发布,这里不再赘述。
然后再打开 shell 来模拟客户端的访问。
$ curl -i -H 'host: rewrite-rule-test.com' http://52.43.45.19/404.html
HTTP/1.1 404 Not Found
Server: openresty+
Date: Mon, 21 Jan 2019 15:48:40 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>openresty</center>
</body>
</html>
可以应答体是 302 跳转到了 https 的地址,其他的参数都没有变动。