Ganesh Londhe
Ganesh Londhe

Reputation: 161

get the hostname(Base URL) using javascript

I get too many ways to get the hostname like code below:

window.location.host // you'll get sub.domain.com:8080 or sub.domain.com:80
window.location.hostname // you'll get sub.domain.com
window.location.protocol // you'll get http:
window.location.port // you'll get 8080 or 80
window.location.pathname // you'll get /virtualPath

In my case I want something different. For example:

My QA site name is example.com/testsite/index.html

My PROD site name is example.com/index.html

The problem here using the above methods to get the hostname it is returning me only the hostname like this: example.com

However for QA I need to return example.com/testsite

For PROD i need to return example.com

Is it possible with the single code? Thanks in advance.

Upvotes: 3

Views: 9992

Answers (3)

Govind Samrow
Govind Samrow

Reputation: 10179

Best method that works for both PROD & QA

var BASE_URL = window.location.href;
    BASE_URL = BASE_URL.split("testsite");
    if (BASE_URL.length > 1)
    {
        BASE_URL = BASE_URL[0];
        BASE_URL = BASE_URL + 'testsite';
    } else{
        BASE_URL = window.location.origin;
   }

Upvotes: 2

Satinder singh
Satinder singh

Reputation: 10198

Use window.location.hostname;

Example:
Page URL is http://localhost:2239/Default2.aspx?id=5&name=SatinderSingh

var getCurrentURL =window.location.href; //http://localhost:2239/Default2.aspx?id=5&name=SatinderSingh
var getHostname=window.location.hostname; //localhost
var getPathName=window.location.pathname  // Default2.aspx
var getPortNo=window.location.port        // 2239
var getQueryString=window.location.search //?id=5&name=SatinderSingh

   var getHostname = window.location.hostname; //localhost
   var getPathName = window.location.pathname  // Default2.aspx
   var split_PathName = String(getPathName.split("/"));        
   var FinalURL = getHostname + "/" + split_PathName[1]

Upvotes: 0

Rory McCrossan
Rory McCrossan

Reputation: 337530

To achieve what you require you'll need to check the window.location.hostname, and also the first folder in the window.location.pathname. Something like this:

function getPath() {
  var folder = (window.location.pathname.split('/')[0] || '').toLowerCase() == 'testsite' ? '/testsite' : '';
  return window.location.hostname + folder;
}

Upvotes: 3

Related Questions