重定向漫谈

文章封面:

王者荣耀元歌 —— 是我?不是我!是傀儡!

1.相关知识点

nginx重定向规则(apache 的简介);

nginx两种跳转:显式跳转,隐式跳转;

伪静态;

同源策略;

2.我的重定向主要应用

1:zouzhenzhong.com定向到https://www.zouzhenzhong.com,给网站加小绿锁;便于百度的收录,权重集中到一个域名;

2:tec.zouzhenzhong.com隐式到https://www.zouzhenzhong.com/article/listshow?menu_id=101,看上去我有个专业的技术博客。

3.源码

一个字就是干!下面贴出nginx 配置zouzhenzhong.com和 tec.zouzhenzhong.com的源文件。(个人网站被攻击也没啥损失,自己印象云,git都有备份,还请大哥高抬贵手!)

zouzhenzhong.conf

#主站

server {

    #这里是ssl 对应配置,从对应的云服务器copy demo对应填写即可

    listen 443 ssl;

    server_name www.zouzhenzhong.com ;

    ssl on;

    ssl_certificate /etc/ssl/tencent/www.zouzhenzhong.com/1_www.zouzhenzhong.com_bundle.crt;

    ssl_certificate_key /etc/ssl/tencent/www.zouzhenzhong.com/2_www.zouzhenzhong.com.key;

    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置

    ssl_prefer_server_ciphers on;


    #www.zouzhenzhong.com 站点的数据能够让其他任何网站拉取,展示;担心安全问题可以使用jsonp,数据源带token的形式。

    add_header Access-Control-Allow-Origin *;


    #url 隐式跳转:https://www.zouzhenzhong.com/121.html  显示的是https://www.zouzhenzhong.com/article/detail/121的内容, 但是url 显示的是https://www.zouzhenzhong.com/121.html

    #注意关键词proxy_pass

    location ~* \.html$ {

        rewrite ^/([\d]+)\.html$ /article/detail/$1 break;

        proxy_pass https://www.zouzhenzhong.com;

    }


    location / {

        root   /home/yiiblog/frontend/web;

        index  index.html index.php;

        if (!-e $request_filename){

            rewrite ^/(.*) /index.php last;

        }

    }


    #没有下面 cgi(Common Gateway Interface)将无法解析php

    location ~ .php$ {

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        root   /home/yiiblog/frontend/web;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        include fastcgi_params;

    }


    #对应资源,不区分大小写,301强跳,便于cdn

    location ~* \.(png|jpg|jpeg||gif|js|css|woff2|eot|ttf|woff|svg|otf)$  {

        rewrite ^/(.*)$ https://staticblog.zouzhenzhong.com/$1 permanent;

    }

}

server {

    #注意https 监听的一定是443端口;所以 zouzhenzhong.com 监听了 80端口和443两个端口;

    listen  80 default_server;

    server_name zouzhenzhong.com;

    #重定向到www

    rewrite ^/(.*)$ https://www.zouzhenzhong.com/$1 permanent;

}

tec_zouzhenzhong.conf

server {

    listen 443 ;

    server_name tec.zouzhenzhong.com;

    ssl on;

    ssl_certificate /etc/letsencrypt/live/zouzhenzhong.com/tec_zouzhenzhong/1_tec.zouzhenzhong.com_bundle.crt;

    ssl_certificate_key /etc/letsencrypt/live/zouzhenzhong.com/tec_zouzhenzhong/2_tec.zouzhenzhong.com.key;

    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置

    ssl_prefer_server_ciphers on;


    #tec.zouzhenzhong.com 所有的访问  都会隐式重定向到https://www.zouzhenzhong.com代理的/article/listshow?menu_id=101

    location / {

        rewrite ^/(.*)$ /article/listshow?menu_id=101 break;

        proxy_pass https://www.zouzhenzhong.com;

    }

    #location ~ .php$  没有做cgi的配置,tec.zouzhenzhong.com 并不需要解析php  

}

server {

    listen  80;#这个不能省略啊

    server_name  tec.zouzhenzhong.com;

    rewrite ^(.*)$ https://${server_name}$1 permanent;

}

4.知识点解析

nginx重定向规则

^/([\d]+)\.html$/article/detail/$1

^/ 就理解为开始就好(还有很多形式,就这样用就行)。

使用括号 () 通过正则匹配标记要截取的内容 ,对应成变量$1,$2...

location匹配location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。

参考资料:nginx 参数从定向demo

nginx两种跳转

显式跳转:访问的url跳转

location ~* \.(png|jpg|jpeg||gif|js|css|woff2|eot|ttf|woff|svg|otf)$  {

    rewrite ^/(.*)$ https://staticblog.zouzhenzhong.com/$1 permanent;

}

隐式跳转:访问的url 不跳,但是内容已经跳了。

注意关键词:proxy_pass ;(吐槽下,网上黏贴复制的文章错的一塌糊涂都还各种转载....)

  location ~* \.html$ {

        rewrite ^/([\d]+)\.html$ /article/detail/$1 break;

        proxy_pass https://www.zouzhenzhong.com;

 }

注意: service nginx restart 前进行 nginx -t 检查;配置文件记得备份;

伪静态

伪静态:优点:便于seo ; 缺点:会增加一点CPU开销(多一次跳转); 优点的作用 > 缺点。

同源策略

对应的service name  对那些host开放;比如:www.zouzhenzhong.comAccess-Control-Allow-Origin * ,www.zouzhenzhong.com可以给其他网站加载,嵌套渲染等;

5.其他

apache 重定向  

kimma.conf : www.viyoya.com中 静态文件跳kimma.viyoya.com

<VirtualHost *:80>

        ServerAdmin kimma.viyoya.com

        DocumentRoot /var/www/html

Header set Access-Control-Allow-Origin “*”

        <ifModule mod_rewrite.c>

                RewriteEngine On

                RewriteCond %{HTTP_HOST} www.viyoya.com.*$ [NC]

                RewriteRule "^/(.*)\.(png|jpg|ttf|woff|woff2|jpeg|GIF|gif|js|css|woff2|eot|ttf|woff|svg|otf|txt)$" "http://kimma.viyoya.com/$1.$2"  [L,R=301]

        </ifModule>

</VirtualHost>

apache .htaccessviyoya.comwww.viyoya.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^viyoya.com [NC]

RewriteRule ^/(.)*$  http://www.viyoya.com/$1 [L,R=301]

Header set Cache-Control "max-age=2592000"

注意:重启apche: apachectl restart 前检查 apche: apachectl -t

文章来源 : 邹振忠的博客 - 重定向漫谈​

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • I/O模型: 阻塞型、非阻塞型、复用型、信号驱动型、异步 同步/异步:关注消息通知机制 消息通知:同步:等待对方返...
    Net夜风阅读 1,989评论 0 1
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 1,988评论 0 9
  • I/O模型Nginx介绍Nginx的安装和目录结构Nginx的配置Nginx的编译安装 一、I/O模型 (一)I/...
    哈喽别样阅读 889评论 0 4
  • 1.ngnix介绍 ngnix www服务软件 俄罗斯人开发 开源 性能很高 本身是一款静态WWW软件 静态小文件...
    逗比punk阅读 2,079评论 1 6
  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...
    尛尛大尹阅读 1,860评论 0 3