本人在一家公司任职的时候碰到过这样一种情况,旧的URL访问是用http协议进行访问的,最近公司部署了SSL服务器,想使用https协议进行访问,开发编辑网站的时候使用了新的URL,编写完成通过测试之后想要部署到服务器上,这时不可能一一通知客户我们的URL已经更改了,我公司使用的网站服务器是用nginx搭建的一个调度服务器,这时就要用到地址重写来实现URL的跳转。
首先来了解一下什么是地址重写
地址重写:获得一个来访的URL请求,然后改写成服务器可以处理的另一个URL的过程。
地址重写的好处:缩短URL,隐藏实际路径提高安全性;易于用户记忆和键入;易于被搜索引擎收录。
常见网站应用场景
- 当网页文件移动或文件目录名称发生改变,出于SEO需要,你要保持旧的URL;
- 网站改版了,网站导航和链接和链接发生变化,为了继续持有原有链接带来的流量,需要保持旧的URL;
实现步骤
旧的nginx配置文件
... ...
http {
... ...
server {
listen 80;
listen 443 ssl;
server_name xxxxxxxxxxxx.com;
... ...
}
}
配置rewrite重定向语句
server {
listen 80;
listen 443 ssl;
server_name xxxxxxxxxxxxx.com;
# ^/(.*):任意的URL任意路径,$1:指(.*)的内容。
rewrite ^/(.*) https://xxxxxxxxxxxxx.com/$1;
... ...
}
重启nginx测试