Запрет перехода на сайт с конкретной страницы извне

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем cherchan, 22 авг 2008.

Статус темы:
Закрыта.
  1. cherchan

    cherchan

    Регистр.:
    20 май 2007
    Сообщения:
    168
    Симпатии:
    33
    Надеюсь, что вопрос задаю в тему:
    подскажите, как запретить переход на свой сайт с конкретной страницы другого сайта (чтобы, скажем, выдавало 403 ошибку).
     
  2. ChemicalForce

    ChemicalForce Постоялец

    Регистр.:
    14 июн 2008
    Сообщения:
    72
    Симпатии:
    45
    Содержимое этой таблицы поместите между <HEAD> и </HEAD>


    <script>
    <!--

    //добавьте любые нежелательные сайты или страницы
    var invalidreferrals=new Array()
    invalidreferrals[0]="сволочной.вебмастер.com"
    invalidreferrals[1]="гадкий.сайт.com"
    invalidreferrals[2]="паршивая.htm"

    var failed=0

    for (r=0;r<invalidreferrals.length;r++){
    if (document.referrer.indexOf(invalidreferrals[r])!=-1){
    failed=1
    break
    }
    }

    if (failed>0){
    alert("Доступ на страницу запрещен!")
    history.go(-1)
    }

    //-->
    </script>


    Нашёл в сборнике скриптов, не проверял, но поидее работает.
     
    cherchan нравится это.
  3. sulacco

    sulacco Постоялец

    Регистр.:
    17 мар 2008
    Сообщения:
    90
    Симпатии:
    45
    ИМХО лучше для таких целей РНР, чтобы у посетителя не закралось сомнения что его перекинули кудато, т.к. РНР выполняется на стороне сервера и пользователю не виден

    PHP:
    <?php
    $ip
    =getenv("Remote_addr"); /*Узнаем ип адресс юзера*/
    $real_ip=getenv("HTTP_X_FORWARDED_FOR"); /*Запрашиваем реальный ип если стоит прокси сервер*/
    $otkuda=getenv("HTTP_REFERER"); /*Откда пришел юзверь*/

    $basaspam= array("www.плохой_сайт.ru","www.еще_сайт.ru");
    $arrurl parse_url($otkuda);

    if (
    in_array($arrurl[host],$basaspam))
    {
    // Юзер пришел с нежелательного сайта - отлуп
    }
    else
    {
    // Добро пожаловать
    }
    ?>
     
    serg_g и cherchan нравится это.
  4. vasill

    vasill Постоялец

    Регистр.:
    18 мар 2008
    Сообщения:
    103
    Симпатии:
    33
    Код:
    RewriteEngine on 
    RewriteCond %{HTTP_REFERER} ^http://(www.)?badsite1\.com/.*$ [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(www.)?badsite2\.com/.*$  [NC,OR]
    RewriteCond %{HTTP_REFERER} ^http://(www.)?badsite3\.com/.*$ 
    RewriteRule .* – [F]
    ############
    RewriteRule .* – [F] выдаст ошибку 403,
    если надо отправить на страницу badsite.html, заменить на
    RewriteRule /* http://www.mysite.com/badsite.html [R,L]
     
    stixtlt и cherchan нравится это.
Статус темы:
Закрыта.