.htaccess

Discussion in 'PHP' started by GOODmen, 9 Sep 2010.

  1. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    Нужна помошь....
    Есть папка например А в ней лежит индекс.хтмл
    Нужно закрыть доступ ко всей этой папке, чтобы при прямом обращение выдало ошибку, но если переходить со страницы members.php то он открывал эту страницу. как сделать это через .htaccess
     
  2. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    именно через .htaccess нужно?
    можно просто в индексе реферер проверять...
     
  3. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    mrxh8, подскажи как сделать?
     
  4. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    придумал для .htaccess:
    Code:
    RewriteEngine On
    rewritecond %{HTTP_REFERER}  ^members.php
    RewriteRule .* /index.php
    
    как-то так... только потести, может нет совсем так как тебе нужно
     
  5. Anarh1st

    Anarh1st Member

    Joined:
    19 May 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    PHP:
    <?
    if(
    $_SERVER['HTTP_REFERER'] == "members.php"){
    ?>
    Код index.html
    <?
    }else{echo "Error";}
    ?>
     
  6. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    Что то оба варианта не работают, все равно открывает напрямую страницу
     
  7. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    вот так вот, это в index.php:
    Code:
    <?php
    	if(@$_SERVER['HTTP_REFERER'] == "http://localhost/members.php")
    		echo "Доступ разрешен"; // сюда что там у тебя должно отображаться вообще
    	else
    		echo "Доступ закрыт!";
    ?>
    
    проверил - работает ;)
    ЗЫ. тут http://localhost/members.php понимаешь же, что подправить нужно хост...
     
    #7 mrxh8, 9 Sep 2010
    Last edited: 9 Sep 2010
  8. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    mrxh8, впринципе работает, но даже когда доступ закрыт он отображает содержимое страницы ниже...как сделать редерикт или заблокировать содержимое?
     
  9. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    не может такого быть!
    возми в { } содержимое
    так типа

    if(@$_SERVER['HTTP_REFERER'] == "http://localhost/members.php")
    {
    тут
    то что
    должно
    отображаться
    }
    else
    echo "Доступ закрыт!";
     
  10. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    если нужен редирект вместо "Доступ закрыт!", замени

    else
    echo "Доступ закрыт!";

    на это:

    else
    {
    header("Location: http://google.com");
    exit();
    }
     
  11. Anarh1st

    Anarh1st Member

    Joined:
    19 May 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    В моем полностью путь попробуй написать
     
  12. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    Cпасибо разобрался, в ЛС скиньте сылки +++ ткну
     
  13. mrxh8

    mrxh8 New Member

    Joined:
    16 Apr 2009
    Messages:
    69
    Likes Received:
    4
    Reputations:
    0
    да не за что
    какие ссылки?)
     
  14. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Реферер можно подделать и вся ваша "защита" накрывается тазом
     
    _________________________
  15. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    320
    Likes Received:
    54
    Reputations:
    7
    Лучше делать что-то типа:
    main.php

    <?session_start();?>
    <?if (isset($_SESSION['user_id'])) {
    echo "<html>
    <head>
    <link rel=\"stylesheet\" href=\"http://localhost/css/style.css\" type=\"text/css\">
    </head>
    <body>
    <div id=\"admin_menu\">
    <a href=\"index.php?op=change\">Сменить пароль</a><br><br>
    <a href=\"index.php?op=add_news\">Добавить новость</a><br><br>
    <a href=\"index.php?op=add_recl\">Реклама</a><br><br>
    <a href=\"index.php?op=exit\">Выход</a><br><br>
    </div>
    </body>
    </html>";
    }
    else {
    exit("Вы не авторизованы"."<br><br><a href=\"http://localhost/admin/auth.php\">Перейти к авторизации</a>");
    }
    ?>

    index.php

    <?php define("IN_ADMIN", TRUE);
    session_start();

    // Получаем параметр op из URL
    $op = $_GET['op'];
    // Выбираем нужное нам действие
    switch ($op)
    {
    case 'main' : include "main.php"; break;
    case 'change' : include "change_pass.php"; break;
    case 'add_news' : include "add_news.php"; break;
    case 'edit' : include "editcomment.php"; break;
    case 'add_recl' : include "add_recl.php"; break;
    case 'show' : include "show.php"; break;
    case 'exit' : include "exit.php"; break;
    default : include "main.php";
    }
    ?>

    Но это тоже коряво и ненадежно
     
  16. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    Подскажите еще..
    Есть куча папок около 1.5к в каждой папке индекс.хтмл и картинки.
    сылки на эти индексы идут с members.php . Вопрос, как зыкрать все эти папки что бы при прямом открытие ничего не просматривалось, а вот при открытие через мемберс.пхп открывал?
     
  17. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    320
    Likes Received:
    54
    Reputations:
    7
    См. мой предыдущий пост. принцип такой же.

    На остальных страницах ставишь проверку на isset(IN_ADMIN, TRUE)
     
    #17 OSW, 15 Sep 2010
    Last edited: 15 Sep 2010
  18. GOODmen

    GOODmen Member

    Joined:
    8 Nov 2008
    Messages:
    45
    Likes Received:
    76
    Reputations:
    10
    а еще есть варианты? а то 1.5к файлов редактировать не охото...
     
  19. Anarh1st

    Anarh1st Member

    Joined:
    19 May 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    Сканишь директорию.
    Каждую загоняешь в массив.
    Циклом проделываешь следуйщие действия с каждым:

    Открываешь индекс.пхп.
    Загоняешь текст в переменную
    Записываешь в начало нужный текст - затем текст страницы - затем текст вконце.

    p/s. Если хтмл страницы то не получится, только с пхп.