有一些路径转发的需求,虽然可以以js来实现比较简单,但是有一些缺点
- 对搜索引擎不友好
- 比较low
下面就一些常见需求记录一下方案
http跳转到https
这种情况可以直接修改腾讯云clb负载均衡的配置,在重定向配置里可以将80通过301或者302跳转到443端口
域名统一
例如用户访问www.xxx.com 的时候,希望重定向到 xxx.com, 这时候可以添加nginx如下配置
server {
listen 80;
server_name www.xxx.com;
return 301 https://xxx.com;
}
对于不同的终端访问不同的文件
例如开发了两个页面,PC端index.html,移动端index_mobile.html,可以根据ua来进行自动重定向
if ($http_user_agent ~* (android|iphone|ipod)){
rewrite ^/(.*)$ /index_mobile.html break;
}
rewrite的行为分为4种配置 break, last, redirect, permanent
- rewrite break - url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变
- rewrite last - url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到报500错误,地址栏url不变
- rewrite redirect – 返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)
- rewrite permanent – 返回301永久重定向, 地址栏显示重定向后的url,爬虫更新url
希望访问根文件index.html的时候在url里去掉文件路径显示
可以增加如下nginx配合着
if ($request_uri = /index.html) {
return 301 https://xxx.com;
}