Forum Webscript.Ru

Программирование => PHP => Тема начата: ekeeper от 22 Июня 2006, 15:58:22

Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: ekeeper от 22 Июня 2006, 15:58:22
Короче есть например файл на серваке
у него есть прямая ссылка http://www.test.ru/game.exe

как сделать, чтобы пользователь мог ввести любую ссылку, но качался именно этот файл, но с именем как в той ссылке, которую ввел пользователь

то есть оригинал http://www.test.ru/game.exe
а пользователь ввел в адресной строке http://www.test.ru/game_125ertr.exe

(пусть _125ertr - префикс - "_" разделитель, а остальное какой-то id)

как сделать, чтобы качался на самом деле http://www.test.ru/game.exe - но имя скачиваемого файла было game_125ertr.exe?????

очень срочно... :insane:
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: html_coder от 22 Июня 2006, 16:10:24
mod_rewrite (http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html)
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: ekeeper от 22 Июня 2006, 16:28:26
я пытался его учить, но плохо получается :( может примером кто поможет?

Цитировать
Описание:

    На некоторых веб-серверах существует более одного URL для какого-либо ресурса. Обычно существуют реальные URL (которые в действительности следует использовать и распространять) и те, которые просто являются ссылками, внутренними, и т.д. Независимо от того, какой URL пользователь применил в своём запросе, в конце концов, он должен увидеть только реальный URL.
Решение:

    Для всех виртуальных URL, мы делаем внешний HTTP редирект, исправляя их и в адресной строке браузера и  во всех последующих запросах. В приведённом ниже наборе правил /~user заменяется реальным /u/user и исправляется отсутствующий завершающий слэш для /u/user.

    RewriteRule   ^/~([^/]+)/?(.*)    /u/$1/$2  [R]
    RewriteRule   ^/([uge])/([^/]+)$  /$1/$2/   [R]


это? или нет? я так понял, что в данном примере идет просто редирект... то есть просто ссылка подменится и файл скачается со старым именем. Или нет? я просто реврайт плохо осиливаю.

а больше там похожих задаче примеров нет :(
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: html_coder от 22 Июня 2006, 16:53:23
RewriteRule ^game(.+)\\.exe game.exe
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: ekeeper от 22 Июня 2006, 16:54:07
СПАСИБО!!!! сейчас проверю :))))
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: ekeeper от 22 Июня 2006, 17:05:57
эээ... а для произвольного файла тогда как сделать? если разделитель "_"

то есть любой файл имеющий в имени "_" редиректить
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: CGVictor от 22 Июня 2006, 17:51:26
ekeeper
Пригодится: http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: ekeeper от 22 Июня 2006, 18:48:44
нет, не работает. Все равно предлагает скачать файл с именем game.exe а не тем, которое было в запросе
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: CGVictor от 22 Июня 2006, 19:05:47
ekeeper
Тогда лови запрос на свой скрипт (mod_rewrite или htaccess), им отдавай content-type и content-disposition. Ну и файлик, echo(file_get_contents);
Название: замена прямой ссылки, ссылкой нужного формата
Отправлено: ekeeper от 22 Июня 2006, 19:12:43
можно конечно через пхп сделать, но докачка тогда обломится людям :(