简体   繁体   中英

Jquery Redirect Based on URL location

This is what I'm trying to solve for...

  1. Only if the URL explicitly contains /foldername/index.htm && /foldername/ on mydomain.com then redirect to http://www.example.com
  2. Should the URL contain any URL parameter /foldername/index.htm?example it should not redirect
  3. All other URLs should not redirect

This is my javascript which is incomplete, but is ultimately what I'm trying to solve for...

var locaz=""+window.location;
if (locaz.indexOf("mydomain.com") >= 0) {
    var relLoc = [
        ["/foldername/index.htm"],
        ["/foldername/"]
    ];
    window.location = "http://www.example.com"; 
}

This is for the purpose to manage a URL that some users are hitting based on a particular way like a bookmark. Without removing the page, we want to monitor how many people are hitting the page before we take further action.

Won't the page always be on the same domain, also if the url contains /foldername/pagename.htm won't it also already include /foldername ? So an && check there would be redundant.

Try the below code.

var path = window.location.pathname;

if  ( (path === '/foldername' || path === '/foldername/index.html') && !window.location.search ) {
    alert('should redirect');
} else {
    alert('should not redirect');
}
var url = window.location;
var regexDomain = /mydomain\.com\/[a-zA-Z0-9_\-]*\/[a-zA-Z0-9_\-]*[\/\.a-z]*$/    
if(regexDomain.test(url)) { 
  window.location = "http://www.example.com"; 
}

Familiarize with the location object. It provides pathname , search and hostname as attributes, sparing you the RegExp hassle (you'd most like get wrong anyways). You're looking for something along the lines of:

// no redirect if there is a query string
var redirect = !window.location.search 
  // only redirect if this is run on mydomain.com or on of its sub-domains
  && window.location.hostname.match(/(?:^|\.)mydomain\.com$/)
  // only redirect if path is /foldername/ or /foldername/index.html
  && (window.location.pathname === '/foldername/' || window.location.pathname === '/foldername/index.html');

if (redirect) {
  alert('boom');
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM