【问题标题】:how to get the entry url on the page, after navigation?导航后如何获取页面上的入口网址?
【发布时间】:2011-07-29 00:11:23
【问题描述】:

我有以下场景:

我想将参数传递给页面foo.com?bar=x,但foo.com 会根据语言自动重定向到foo.com/en,而我丢失了bar 参数。

我不介意我在foo.com/en,我只想要bar 参数。

Referer 解决方案不起作用,因为它会自动重定向,并且是 foo.com?bar=x 之前的那个。

这个问题有 JavaScript 或 jQuery 解决方案吗?

编辑

我在页面上只有一个脚本,foo.com 不是我的域,我在 foo.comfoo.com/en 上都有脚本。问题是在foo.com 上没有调用脚本,而在foo.com/en 上我没有参数了。

页面foo.com通过这种方法重定向: <meta http-equiv="Refresh" content="0;URL=foo.com/en" />

我不能修改这个方法,我也不想修改,因为解决方案不是通用的。

【问题讨论】:

  • 重定向是如何完成的?谁做重定向?
  • foo.com 进行重定向,我只有一个脚本和所有页面,问题是在foo.com?bar=x 上它没有运行,而在foo.com/en 它运行,但是我没有参数了
  • 好的,所以问题是,foo.com 是如何进行重定向的?它是自动为您执行此操作的主机吗?你对它有控制权吗?换句话说,如果您知道的话,能否提供一些有关重定向机制的详细信息?
  • 我想不出一个非恶意的原因,为什么您会在 foo.com 上运行一个脚本并且无法与 foo.com 的所有者讨论它。
  • 一个原因是告诉大家使用这个脚本并不酷,而且还要修改你的页面。与所有者交谈将是最后的选择,我很高兴我找到了完美的片段标识符解决方案。这不是什么大问题,它显然有一个干净的方法来解决。我看到 Google Analytics 使用了相同的做法。

标签: javascript url redirect parameters


【解决方案1】:

不,没有。

如果 foo.com?bar=x 和 foo.com?bar=y 应该有不同的内容,那么它们不应该重定向到同一个资源。

【讨论】:

    【解决方案2】:

    您是否尝试过更改重定向,使其在域名之后包含任何内容,例如重定向中的脚本名称、查询字符串等?

    【讨论】:

      【解决方案3】:

      找到了解决办法,简单多了,改成

      foo.com?bar=x

      foo.com#bar=x

      这样,哈希标签仍然存在,所以我有foo.com/en#bar=x

      感谢您的回答。

      【讨论】:

        【解决方案4】:

        您可以使用 PHP 捕获... 如果你有

        foo.com?bar=x

        你想重定向到

        foo.com/en?bar=x

        使用这个

        <meta http-equiv="Refresh" content="0;URL=foo.com/en?bar=<?php echo $_GET["bar"]; ?>" />

        产生的重定向将是

        foo.com/en?bar=x

        【讨论】:

          猜你喜欢
          • 2020-12-15
          • 2021-05-27
          • 1970-01-01
          • 1970-01-01
          • 2017-10-16
          • 2015-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多