如果排除包含www的网址

时间:2011-12-23 23:33:10

标签: javascript jquery if-statement web window.location

我有以下JavaScript,当url(window.location)包含www时。 javascript IS 已执行

var windowloc = window.location; // http://mywebsite.com/
var homeurl = "http://mywebsite.com/";
if(windowloc==homeurl){
//JavaScript IS EXECUTED
}

如果 ,则javascript 执行。

var windowloc = window.location; // http://www.mywebsite.com/
var homeurl = "http://mywebsite.com/";
if(windowloc==homeurl){
//JavaScript is NOT executed.
}

如何通过允许JavaScript接受带有和不带www的URL(window.location)来克服这一点。

5 个答案:

答案 0 :(得分:2)

使用此类代码查看域名是否包含www.mywebsite.com:

if (window.location.href.indexOf("//www.mywebsite.com/") != -1) {
     // code to execute if it is www.mywebsite.com
} else {
     // code to execute if it is not www.mywebsite.com
}

或者,您可以像这样使用window.location的主机名部分来检查“www。”:

if (window.location.hostname.indexOf("www.") != -1) {
     // code to execute if it is www. something
} else {
     // code to execute if it is not www. something
}

或者如果您想要检查您的整个域名,可以这样做:

if (window.location.hostname === "www.mywebsite.com" {
     // code to execute if it is www.mywebsite.com
} else {
     // code to execute if it is not www.mywebsite.com
}

答案 1 :(得分:1)

你可以使用正则表达式克服这一点,因为我相信其他答案会提供。但是,搜索引擎优化(SEO)的最佳做法是强制您http://mywebsite.com/进行权限重定向到http://www.mywebsite.com/,因为Google等搜索引擎会考虑使用www。和www-less版本两个独立的网站。

然后您将不需要两个单独的条件,因为您的网址将永远是www。版本

答案 2 :(得分:0)

if (window.location.href.indexOf("://www") === -1) {
    // "www" excluded
} else {
    // other stuff
}

将代码示例编辑为更具体

答案 3 :(得分:0)

if(window.location.href.indexOf('mywebsite.com')!= -1){
   //do stuff
}

答案 4 :(得分:0)

使用hostname对象的location属性来确定您所服务的地址:

if (location.hostname==='mywebsite.com')
    // do something

location和其他拥有地址的对象(如链接)具有hostnamepathnamesearchhash等属性,可以为您提供已经解析的部分的URL,所以你不必尝试自己挑选URL字符串。不要只查找位置字符串中是否存在www.,因为它可能位于字符串中不是主机名的其他位置。

但是Justin的回答是:如果你试图将非www地址等替代地址重定向到规范地址,那么正确的方法是使用HTTP 301重定向而不是与JavaScript有关。这通常是在服务器级别配置的,例如对于Apache,您可以在Redirect中使用.htaccess