JavaScript перенаправление на основе доменного имени - PullRequest
1 голос
/ 07 февраля 2011

Я не ищу простого перенаправления.

Я пытаюсь сделать следующее:

Персона А загружает сайт BOB.com и щелкает ссылку на страницу X.
Пользователь B загружает сайт TIM.com и щелкает ссылку на ту же страницу X.

На странице X есть команда javascript, которая говорит: «Если пользователь пришел с сайта Bob.com, то перенаправьте на Bob.com/».привет.
Если пользователь пришел с TIM.com, перенаправьте на Tim.com/hello.
. Если пользователь не пришел с эфира, то перенаправьте на Frank.com/opps.

Эта страница X будет обрабатывать 404 ошибки для нескольких доменов, поэтому ей нужно будет ТОЛЬКО взглянуть на доменное имя до ".com".Он должен игнорировать все, что находится за ".com".

Это сценарий, с которого я начал.

<script type='text/javascript'>
var d = new String(window.location.host);
var p = new String(window.location.pathname);
var u = "http://" + d + p;
if ((u.indexOf("bob.com") == -1) && (u.indexOf("tim.com") == -1))
{
u = u.replace(location.host,"bob.com/hello");
window.location = u;
}
</script> 

Ответы [ 3 ]

6 голосов
/ 07 февраля 2011

Используйте document.referrer

if(/http:\/\/(www\.)?bob\.com/.test(document.referrer)) {
   window.location = "http://bob.com/hello";
}

else if(/http:\/\/(www\.)?tim\.com/.test(document.referrer)) {
   window.location = "http://tim.com/hello";
}

else {
   window.location = "http://frank.com/oops";
}

Вместо регулярного выражения вы можете использовать indexOf, как вы делали изначально, но это также будет соответствовать thisisthewrongbob.com и thisisthewrongtim.com;регулярное выражение более устойчиво.

1 голос
/ 07 февраля 2011

document.referrer это место, чтобы быть

0 голосов
/ 07 февраля 2011

Используйте document.referrer, чтобы узнать, откуда пришел пользователь.

Обновлен код

<script type='text/javascript'>
  var ref = document.referrer,
      host = ref.split('/')[2],
      regexp = /(www\.)?(bob|tim).com$/,
      match = host.match(regexp);

  if(ref && !regexp.test(location.host)) { 
  /* Redirect only if the user landed on this page clicking on a link and 
    if the user is not visiting from bob.com/tim.com */
    if (match) {
      ref = ref.replace("http://" + match.shift() +"/hello");
    } else {
      ref = 'http://frank.com/oops';
    }

    window.location = ref;
  }
</script>

работает пример (отображается сообщениевместо перенаправления)

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