基于查询字符串的重定向

时间:2018-03-10 01:12:23

标签: javascript redirect query-string window.location

不想膨胀带有300个条目的.htaccess,我可以使用javascript根据对该单个文件的请求中的查询字符串重定向到URL。例如,

https://www.mywebsite.com/redirect.jhtml?Type=Cool&LinkID=57

我关心的唯一部分是57,然后将其重定向到以下任何地方: https://www.anothercoolwebsite/secretworld/

在下列情况下,取34并重定向:

https://www.mywebsite.com/redirect.jhtml?Type=Cool&LinkID=34 https://www.anoldwebsite.com/cool/file.html

谢谢!

1 个答案:

答案 0 :(得分:1)

这应该没问题。请记住,像PHP脚本这样的服务器端解决方案将适用于更多客户端。既然您提到了.htaccess,我想我应该让您了解fallback resource command

无论如何,这是JS唯一的解决方案

function parseString(){//Parse query string
    var queryString=location.search.substring(1);//Remove ? mark

    var pair = queryString.split('&'); //Key value pairs

    var returnVal={};
    pair.forEach(function(item,i){
        var currPair = item.split('=');//Give name and value

        returnVal[currPair[0]]=currPair[1];
    });

    return returnVal;
}

var links=["index", "about"];//Sample array of links, make sure this matches up with your LinkID
location.href=links[parseString().LinkID]+".html"; //Redirect based on LinkID