Если исключить URL, содержащий WWW - PullRequest
1 голос
/ 24 декабря 2011

У меня есть 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 принимать URL-адреса (window.location) с и без www.

Ответы [ 5 ]

2 голосов
/ 24 декабря 2011

Используйте такой код, чтобы увидеть, есть ли в домене 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 голос
/ 24 декабря 2011

Вы можете преодолеть это с помощью регулярных выражений, поскольку я уверен, что другие ответы предоставят.Тем не менее, для оптимизации поисковых систем (SEO) лучше заставить ваш http://mywebsite.com/ сделать перманентное перенаправление на http://www.mywebsite.com/, потому что поисковые системы, такие как Google, считают www.и версии без www - два отдельных веб-сайта.

Тогда вам не понадобятся два отдельных условия, поскольку вашим URL всегда будет www.версия.

0 голосов
/ 24 декабря 2011

Используйте свойство hostname объекта location, чтобы определить, по какому адресу вы обслуживаетесь:

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

location, а другие объекты, владеющие адресом, такие как ссылки, имеют свойства, подобные hostname, pathname, search и hash, чтобы дать вам уже проанализированные части URL, поэтому вам не нужно пытаться самостоятельно разбирать строки URL.Не просто ищите наличие www. в строке местоположения, поскольку это может быть где-то еще в строке, которая не является именем хоста.

Но +1 ответ Джастина: если вы пытаетесь перенаправитьальтернативные адреса, такие как адрес не из www для канонического адреса, правильный способ сделать это с перенаправлением HTTP 301, а не с JavaScript.Обычно это настраивается на уровне сервера, например, для Apache вы можете использовать Redirect в вашем .htaccess.

0 голосов
/ 24 декабря 2011
if(window.location.href.indexOf('mywebsite.com')!= -1){
   //do stuff
}
0 голосов
/ 24 декабря 2011
if (window.location.href.indexOf("://www") === -1) {
    // "www" excluded
} else {
    // other stuff
}

отредактировал образец кода, чтобы быть более конкретным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...