V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gogosun
V2EX  ›  问与答

一个艰难的页面重定向问题

  •  
  •   gogosun · 2016-05-28 20:54:03 +08:00 · 1690 次点击
    这是一个创建于 2901 天前的主题,其中的信息可能已经有所发展或是发生改变。
    求教:
    比如访问网址: www.a.com/a.html 后页面内容为: V2EX 真棒!
    然后我希望在访问另一个网址: www.a.com/a.html?from=b 后,重定向到上面的网址: www.a.com/a.html
    但是页面内容显示为: V2EX 大神聚集地!


    请问该如何实现?
    13 条回复    2016-05-30 18:25:27 +08:00
    soland
        1
    soland  
       2016-05-28 21:03:19 +08:00
    cookies?
    subpo
        2
    subpo  
       2016-05-28 21:11:46 +08:00
    request.referer
    JiShuTui
        3
    JiShuTui  
       2016-05-28 21:22:34 +08:00 via Android
    session 或 cookie 都可以
    asp
        5
    asp  
       2016-05-28 23:24:51 +08:00
    伪静态,有服务器权限也可以改映射,这个就坑了!
    popok
        6
    popok  
       2016-05-29 01:08:21 +08:00
    referer
    gogosun
        7
    gogosun  
    OP
       2016-05-29 01:30:29 +08:00
    @soland
    @subpo
    @JiShuTui
    @pimin
    @asp
    @popok
    各位大神,本来我想简单的说明问题,不过似乎没说到主题。实际的问题是这样子:
    先定义 2 个链接:
    A=http://www.680109.top/g20160528054043724005394/g20160508200004340421368/AAABVRk3yD0AAAABMwAAADM.html

    B= http://www.680109.top/g20160528054043724005394/g20160508200004340421368/AAABVRk3yD0AAAABMwAAADM.html?from=timeline&isappinstalled=0

    我有一个链接 A 在微信里面打开是一个过劳的 10 个危险信号页面。
    但是在 A 链接加上尾巴,最后的链接是 B 效果。
    然后再从微信里面打开,是一个视频页面。并且 B 链接在打开后自动去掉了尾巴变成了 A 链接。

    我扒了 A 页面代码,发现有下面的 js :

    <script type="text/javascript">
    var articleUrl = "http://www.wehappyd.com/agile-cms/touch/article.action?id=g20150924070028956132562&preview=1";
    var isFromTimeline = "false";
    var isFromGroupmessage = "false";
    if (isFromTimeline == "true" || isFromGroupmessage == "true") {
    setTimeout(function(){
    location.replace('');
    }, 500);
    } else {
    document.getElementById("mainFrame").src = articleUrl;
    document.getElementById("mainFrame").removeAttribute("style");
    }
    </script>

    那个过劳危险信号页面其实是 http://www.wehappyd.com/agile-cms/touch/article.action?id=g20150924070028956132562&preview=1 的内容。

    那么问题来了,

    打开 B 链接是如何自动去掉了尾巴?from=timeline&isappinstalled=0 ,并且显示的页面内容是含视频的页面而不是过劳危险页面?

    是通过重定向,传递了 isFromTimeline 或者 isFromGroupmessage 参数到 A 页面么?
    如果是如何重定向,如何传递?

    如果不是,是如何实现上述流程的呢

    谢谢
    pimin
        8
    pimin  
       2016-05-29 02:07:49 +08:00 via Android
    @gogosun
    试了一下,我这里打开页面和参数没有关系
    微信打开就是视频
    手机浏览器打开就是过劳
    所以推断是单纯的根据 UA 返回不同的值。
    popok
        9
    popok  
       2016-05-29 02:08:11 +08:00
    我猜是服务端,判断是否 from=timeline&isappinstalled=0 ,如果是来自 timeline ,前端就输出 javascript 时,对应的
    var isFromTimeline = "true";
    然后让前端自己跳。
    gogosun
        10
    gogosun  
    OP
       2016-05-29 07:17:28 +08:00
    @pimin 代码里面有 UA 判断情况,不过你可以试试把 2 个链接发到微信群或者好友聊天对话框,在相同的 UA 环境下, A 还是显示过劳, B 打开还是视频,并 B 打开后,后面的尾巴已经没有了,链接形式同 A ,但是显示的内容并不是 A 的过劳了。
    gogosun
        11
    gogosun  
    OP
       2016-05-29 07:24:28 +08:00
    @popok 那他这个判断出来的结果怎么传递给前端 javascript ?
    subpo
        12
    subpo  
       2016-05-29 13:26:12 +08:00
    ... 不要艾特我,基本知识都不了解,指望我们给你从基础开始讲吗
    gogosun
        13
    gogosun  
    OP
       2016-05-30 18:25:27 +08:00 via iPhone
    @subpo laji 2B 一个。去你 md
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3699 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:52 · PVG 18:52 · LAX 03:52 · JFK 06:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.