LINUX.ORG.RU

Устаревание/прятание ссылок. Как сделать?


0

1

Здрасте.
Меня интересует такой вопрос, как сделать устаревание ссылок?
Поясню, есть страница www.mysite.com/main.html
На ней есть ссылки на вторую страицу скажем www.mysite.com/42342&32.html

Как сделать так чтобы ссылка на главной странце и сама вторая страница динамически менялись скажем каждые 15 минут?
Чтобы вторая страница имела названия по типу:
www.mysite.com/42342&32.html
потом
www.mysite.com/36843505.html'
потом
www.mysite.com/09789237.html и т.д

Чтобы на вторую страницу можно было попасть только через главную страницу и небыло смысла сохранять прямую ссылку на вторую страницу, так как она быстро устаревает.

А еще лучше скажите как сделать скрытые/спрятанные ссылки (или какие они там) по типу как на файлообменниках. Например как на depositefiles.com Вы не можете послать прямую ссылку другу на скачивание файла, он его может начать качать только после маленького квеста. В моем случае это ссылка не на файл, а на страницу. Хотя это тоже самое должно быть

В моем распоряжении вся мощь линукса, апача и php. Подсказки какие программы этим занимаются, линки тоже приветствуются. Спасибо



Последнее исправление: dromer (всего исправлений: 1)

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

heisenberg ★★
()
Ответ на: комментарий от heisenberg

если нужно, чтоб люди не заходили на внутренние страницы по прямым ссылкам, лучше проверять реферер на уровне веб-сервера.


Как это делается? Мне надо чтобы на мои внутренние страницы люди заходили с моей главной страницы а не с гугловского кеша который содержит линки на эти внутренние страницы.
Прощу прощения за сумбур, я просто не знаю как эту задачу грамотно спрашивать у поисковиков :(

dromer
() автор топика

Мне кажется. что вам надо начать с азов. Или дать денег тому, кто азы уже прошел. Причем желательно, чтобы он прошел не только азы :)

boombick ★★★★★
()
Ответ на: комментарий от boombick

Обоснуйте. Задача простая. Уверен, многими решенная. Моих базовых знаний апача php и html должно быть достаточно.
Спасибо за наводку heisenberg. То что нужно. Будем попрбовать.

dromer
() автор топика
Ответ на: комментарий от dromer

> Задача простая. Уверен, многими решенная. Моих базовых знаний апача php и html должно быть достаточно.

Если бы каждый раз, когда я это слышу, мне давали по доллару...

boombick ★★★★★
()
Ответ на: комментарий от dromer

> Обоснуйте. Задача простая. Уверен, многими решенная. Моих базовых знаний апача php и html должно быть достаточно.

Задача простая, и даже очень. Многими решённая. Но обычно решённая прямым способом, а не утехо-извращённым, через базовые знания apache php html.

Если ты правильно поставишь задачу, ты сам найдёшь решение, поскольку их много, и все они очевидны.

anonymous
()

Делаем в апаче замену mysite/files/tralala -> mysite/cgi-bin/tempolinking?tralala. CGI tempolinking будет заниматься тем, что из БД (которую заполняет другой CGI) будет выдирать соответствие ссылки tralala реальному файлу. Как только пользователь файл получил, запись из БД удаляется. Также по крону (или при помощи того же скрипта, заполняющего БД) можно чистить старые записи.

В результате пользователь, вместо того, чтобы по-человечески скачать файл с вашего сайта, получит здоровенную **ную загородку, посмотрит-посмотрит, помучается-помучается, да и пошлет вас вместе с вашим сайтом куда подальше. И поделом!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Xenesz

дада, расскажи обычным хомячкам, которые добавляют ссылки «вмемориз» и постят вконтактике, что такое «реферер». спустись на землю, хакИр

heisenberg ★★
()
Ответ на: комментарий от Eddy_Em

ваше решение слишком просто и очевидно. думаю, для хранения ссылок тут больше подойдет кластеризуемое nosql-хранилище, а основную логику надо вынести на отдельный сервер и работать с ним через веб-сервисы на основе протокола soap.

heisenberg ★★
()
Ответ на: комментарий от heisenberg

Даешь удаление гланд через задницу!!! =)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от heisenberg

хакИр

Неприличными словами папрашу не выражацца! Можно не знать, что такое реферер, но ведь даже для неграмотных есть штучки типа даунлоудхелпера. Если для такого простого трюка ничего нет, это удивительно.

Xenesz ★★★★
()
Ответ на: комментарий от dromer

>>Как это делается? Мне надо чтобы на мои внутренние страницы люди заходили с моей главной страницы а не с гугловского кеша который содержит линки на эти внутренние страницы.
Прощу прощения за сумбур, я просто не знаю как эту задачу грамотно спрашивать у поисковиков :(

1: проверять рефер;
2: при запросе главной в сессию ложить некий одноразовый токен + генерить ссылку вида url?tokenи при запросе сравнивать токен из сессии с токеном из url;
3: ?????;
4: PROFIT!!!11;

exception13 ★★★★★
()

Раз зашла речь про реферер, предлагаю генерить страничку динамически, пропускать с её реферером один раз. Посетитель ткнул на главной «скочать» - страничка собралась, перевёл на неё гостя, оттуда с реферером этой странички пустил куда надо - страничка потёрлась, её адрес из разрешённых выкинут - профит. (Кажется, боян.)

Xenesz ★★★★
()
Ответ на: комментарий от Xenesz

>>Так наверное ещё проще, да.

так не просто проще. так уже все давно работает. например идет проверка на попытку повторной отправки уже засабмитенной формы с выдачей сообщения что данные уже схоронены.

exception13 ★★★★★
()
Ответ на: комментарий от exception13

А как по мне, так мой способ - самый простой...

Eddy_Em ☆☆☆☆☆
()

> А еще лучше скажите как сделать скрытые/спрятанные ссылки (или какие они там) по типу как на файлообменниках. Например как на depositefiles.com

http://redmine.lighttpd.net/wiki/1/Docs:ModSecDownload

drull ★☆☆☆
()

Разбил всё лицо фэйспальмом.
Зачем весь этот тред, если есть сессии? И есть средства, которые их автоматически рулят?

stevejobs ★★★★☆
()

странно, обычно люди стараются сделать наоборот - чтобы по старым ссылкам можно было перейти на материал если даже структура поменялась. Что-то не то вы делаете

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Автор хочет,

Чтобы на вторую страницу можно было попасть только через главную страницу


Просто каждому пользователю выдается своя сессия, к каждой сессии собачится свой мапинг ресурсов. Путь в мапинге до текущего открытого ресурса (страницы, файла, картинки) синхронизируется с URL. Из одной сессии нельзя заюзать мапинг другой сессии, можно по таймеру фигачить новые мапинги, да и саму сессию можно invalidate по таймеру. И для этого не нужно совершать почти никаких лишних движений. Не?

А еще автор утверждает, что

В моем распоряжении вся мощь линукса, апача и php.


так что всячески советую ему (как одну и мошей линукса) заюзать какой-нибудь Wicket под жаву, и наслаждаться не только протуханием ссылок, а еще и stateful-интерфейсами несмотря на HTTP, и написанием аякса без знания javascript.

stevejobs ★★★★☆
()

Предлагаю вам рассмотреть такой способ.
При заходе на главную создаётся новая сессия, ограниченная по времени действия. Все ссылки, ведущие с главной, должны содержать в себе идентификатор этой сессии. В самом простейшем случае ссылки у вас должны быть наподобие /v9i0c14ehna5kgmsghrri313u4/что-то-постоянное.html. Если по каким-то причинам вы не можете дополнять ссылки идентификатором сессии в момент генерации страницы (например, текст со ссылками уже хранится где-то), то заюзайте <base href="...«> и упомяните в нём некий базовый URI, содержащую идентификатор сессии, а ссылки на всякую статику сделайте абсолютными либо добавьте к веб-серверу необходимый рерайт (^/\w+/(.+)$ → /$1). Как вариант можно на лету парсить HTML и модифицировать ссылки, но при большой посещаемости это может излишне нагружать систему.
При заходе же по ссылкам с недействительной/чужой сессией перекидывать на главную, но хорошо бы перед этим предупреждать пользователя в чём собственно дело.

Постоянно генерировать и хранить уникальные ссылки для каждой страницы не стоит, это бессмысленная трата ресурсов.

frozen_twilight ★★
()

Спасибо всем отписавшимся. Уже есть направление и понимание что к чему. Много еще пока смутно. Но это я уже в гугле докопаю

dromer
() автор топика

1. читаешь про mod_rewrite,
2. заводишь все запросы на серверный скрипт,
3. в случае php в скрипте проверяешь $_SERVER['REQUEST_URI'] - это будет URI изначального запроса,
4. придумываешь систему кодирования ссылок, которая позволит тебе отделять валидные на текущий момент ссылки.

Reaper ★★
()
Ответ на: комментарий от frozen_twilight

Вы все никак не поймете, зачем народ без реферера редиректится на главную. Трафик денег стоит и оплачивается он с рекламы, которая есть на главной странице (в общем случае).
Это значит, что можно пренебречь всеми теми 0,5% пользователей, которые сидят в браузерах с отключенными реферерами и приписывают рефереры вручную.

heisenberg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.