скрыть URL к картинке

Статус
В этой теме нельзя размещать новые ответы.
пихайте пустой index.htm и не мучайтесь. либо настройте вебсервер
 
причем тут html?
есть старый вариант:
mysite.ru/uploads/images/1/1.jpg
(тут сразу видно папку где хранятся картинки)
и новый:
mysite.ru?imgid=6
(вот тут хрен найдеш папку)
впринципе как такое реализовать я и ищу
 
впринципе вы верно рассуждаете но цель моя скрыть папку где находятся картинки, тоесть зная URL картинки юзер даже если его введет в браузере он получит одну картинку и нечего более. У меня по сути сайт - каталог фирм, вот если будут стандартные пути к картинкам то любой желающий сможет слить к себе и всю папку с картинками а с таким URL он даже путь до неё не найдет )

Чтоб не видеть список файлов в папке добавте в .htaccess строчку

P.S Вы, скорее всего, напрасно мучаетесь, если спец захочет слить то никакая защита не поможет :)
можно усложнить задачу парсинга но не болие

P.S P.S Поставте водяной знак на картинку и никто уже не будет парсить их :):):)
 
уже написали как polyetilen
написал там даже можно указывать не существующую папку а внутри открывать ту какую надо ...
чем не понравилось то?
или может написать за Вас все... то это уже другой разговорр и в другом разделе...

Добавлено через 10 минут
в том примере можно написать
mysite.ru/upload/kartinka.jpg
.htaccess
PHP:
RewriteEngine on
RewriteRule ^upload/([^/]*)/?$ image.php?file=$1 [NC]

код имаджа
PHP:
 /**
   * Страницу-рефферер, откуда пришел пользователь (REFERER)
   * @return  mixed REFERER или false если не определен
   */
  function referer() {
    global $HTTP_REFERER;
    if (empty($HTTP_REFERER)):
      if (!empty($_SERVER) && isset($_SERVER['HTTP_REFERER'])): $HTTP_REFERER = $_SERVER['HTTP_REFERER'];
      elseif (@getenv('HTTP_REFERER')): $HTTP_REFERER = getenv('HTTP_REFERER');
      endif;
    endif;
    if (!empty($HTTP_REFERER)): return $HTTP_REFERER;
    endif;
    return false;
  }
  
   /**
   * Перенаправление
   * @param string URL
   * @param integer Задержка в сек
   * @param mixed Тип заголовок или мета
   */
  function redirect($url, $time=0, $type='header') {
    switch ($type):
      case 'meta':
        echo'<meta http-equiv="refresh" content="' . $time . '; URL=' . $url . '" >';
        break;
      case 'location':
        header("Request-URI: $url");
        header("Content-Location: $url");
        header("Location: $url");
        header("Location: url=" . $url);
        break;
      case 'refresh':
      default:
        if (headers_sent ()):
          echo"<script>document.location.href='$url';</script>\n";
        else:
          header("Request-URI: $url");
          header("Content-Location: $url");
          header("Refresh: " . $time . " url=" . $url);
        endif;
        exit();
        break;
    endswitch;
  }
  
if (preg_match('/super_papka_s_kartinkami/i', referer())):
$image="super_papka_s_kartinkami/".$_GET['file'];
if($_GET['file']!="" && file_exists($image)){
   
        $info = @getimagesize($image);
        switch($info['mime']){
            case 'image/gif':
            case 'image/png':
            case 'image/jpeg':
                header('Content-Type: '.$info['mime']);
                header("Content-Length: ".@filesize($image));
                echo @file_get_contents($image);
            break;
            default:
            header("HTTP/1.0 404 Not Found");
        }
} 
redirect('mysite',10,'meta');
echo 'а тут не нифига';
endif;
 
уважаемый мне нужна идея, писать за меня ничего не надо.
 
просто заблокируй доступ к папке залив в неё .htaccess
а путь к картинке реальный и не нужен чтобы её сохранить =)
 
Есть MySQL таблица с путями к картинкам с primary index id:
id path(varchar(64))
6 images/img1.jpg

При загрузке фото можешь имя файла сам генерить от md5 кода. Никто не найдёт файл imgid=6 который на самом деле images/7fad3836d529...23.jpg

Дополнительно, или самодостаточно решение на уровне вебсервера apache, создать .htaccess для папки images/ с запретом доступа для всех кроме locahost.
Твой php скрипт его увидит ибо он с localhost, остальные юзеры не смогут, даже зная полный урл - выдаст ошибку 403!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху