如何使用javascript查询重定向url

How to redirect url using javascript query

本文关键字:重定向 url 查询 javascript 何使用      更新时间:2023-09-26

如何使用query/xxx进行有条件重定向?url链接中的xxx?

例如,任何带以下两个链接来我网站的人都应该被重定向到不同的页面。

mysite.com/competition?a=>mysite.com/contest-a
mysite.com/competition?b=>mysite.com/contest-b

这可以使用js和元刷新来完成吗?

如何使用.htaccess完成此操作?

如果有查询字符串,请将?的第一个实例替换为-

if (window.location.search.length)
    window.location.href = window.location.href.replace('?','-');

使用

location.href 

检测url,您现在所在的位置。和

window.location.replace('mysite.com/contest-a ');

进行重定向。但可能在服务器端做得更好,因为这样会更快。

您可以使用下面的脚本进行重定向。

window.onload = function()
{
   var location = window.location;
   if(location.indexOf("contest?a") > -1)
   {
         window.location.href = "mysite.com/contest-a";
   }
   else
   {
         window.location.href = "mysite.com/contest-b";
   }
}

在不刷新页面(哈希除外)的情况下更改url是不可能的,因此您最好不要首先使用该url,以避免用户不必要的请求和麻烦。你可以看看mod_rewrite,它可以做到这一点(将用户的"漂亮url"转换为服务器真正理解的"丑陋url")

在您的示例中,一个可能的规则可能是

RewriteRule  ^mysite.com/contest-{.+}  /mysite.com/contest?$1

如果你可以在客户端进行这种操作,你可以在你的登录页(到达的用户将被重定向的页面)上嵌入以下片段,就在<head>标签之后:

<script type="text/javascript">
  var mapReferrer = function() {
    var gotoURL;
    switch(document.referrer) {
      case "https://www.google.com":      gotoURL = "http://<yoursite>/arrivedFromSearchEngine"; break;
      case "https://www.facebook.es":     gotoURL = "https://<yoursite>/engageFBusers"; break;
      case "http://<yoursite>/contest?b": gotoURL = "http://<yoursite>/contest-b"; break;
    };
    if (gotoURL) window.location = gotoURL;
  };
  window.onload = mapReferrer;
</script>