[PHP]Смена ссылки в зависимости от того, по какому адресу зашли на сайт.

Discussion in 'PHP' started by frxmaster, 8 Jun 2010.

  1. frxmaster

    frxmaster New Member

    Joined:
    28 Dec 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Буду очень благодарен, если подскажете решение такой задачи:

    Имеется, например, домен: tut.ru

    В корне его индексный файл index.php , ссылки на котором все ведут на http://tut.ru/proga.exe

    Можно ли с помощью .htaccess или ещё как сделать так, чтобы если заходишь на сайт по ссылке, например, http://tut.ru/pikachu/ - посетителя редиректило на главную, т.е. http://tut.ru и при этом ссылки на скачивание программы были уже http://tut.ru/proga_pikachu.exe (файл proga_pikachu.exe предварительно будет уже залит на хост)

    Аналогично: http://tut.ru/4/ --> http://tut.ru/proga_4.exe

    Т.е. в зависимости от ссылки, по которой пришёл посетитель - скачивались разные файлы.
     
  2. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    С помощью .htaccess не знаю как можно сделать.
    С помощью PHP: можно в каждую папку залить файл index.php (этот вариант неэффективный, если количество каталогов слишком большое), который получал бы URI, потом генерировал имя для скачиваемого файла. Дальше можно переходить на главную страницу, но нужно реализовать какой нибудь дополнительный параметр (GET/POST, не имеет значения), с помощью которого в коде главной страницы будет выводиться iframe, который уже будет делать запрос на закачку требуемого файла.
     
  3. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Вот. Тока без редиректа обратно на index.php
    Пльзователь заходит по директории, ему выдается ссылка на файл соответсвующей директории. Ну естесвенно, если файл каждый раз уникален, т.е. файлы заранее лежат на сервере и сверяется с "папкой", то естесвенно нужно проверять вхождения.
    Если нужно именно чтобы пользователь заходил по "папке" и его редиректило обратно, то в index.php просто проверяй REFERER и в соответсвии с ним делай.
    .htaccess
    index.php
    PHP:
    <?php
    echo "Hello World!";
    if(isset(
    $_GET['file'])) {
        echo 
    "Your file is: proga_".$_GET['file'].".exe";  
    }
    ?>
     
    #3 LStr1ke, 9 Jun 2010
    Last edited: 9 Jun 2010
    1 person likes this.
  4. roxblnfk

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

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    По моему проще заменить код страницы 404, которая будет после проверок запроса слать юзера куда надо, либо сразу отдавать файл