Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с адресом. Применить модреврайт
 
 автор: slonik   (12.10.2006 в 16:49)   письмо автору
 
 

Привет, всё не могу решить такую проблему.
Не могу сделать через модреврайт такую вещь,
чтобы из такой ссылки получился более красивый адрес:

www.sait.ru/index.php?raz=$1dva=$2&tri=$3&chetire=$4

хочу получить адрес такого типа:
www.sait.ru/$1/$2/$3$4

Сложность заключается в том, что я таким методом хочу отдать файл.
$2 - на сервере вообще никаким образом не числится, тоесть полностью
виртуальная папка.
Если кто сталкивался с такой проблемой, подскажите плиз.

P.S.
Пробовал таким способом, но не поучается..
RewriteRule ^$1/$2/$3$4$ http://sait.ru/index.php?raz=$1dva=$2&tri=$3&chetire=$4
Всё перепробовал, что в мозги пришло, но никак чё-то :(

   
 
 автор: slonik   (12.10.2006 в 19:59)   письмо автору
 
   для: slonik   (12.10.2006 в 16:49)
 

Народ, up!

Мой вопрос слишком тупой или наоборот? Или никто с этим не сталкивался?

   
 
 автор: Trianon   (12.10.2006 в 20:09)   письмо автору
 
   для: slonik   (12.10.2006 в 16:49)
 

>www.sait.ru/index.php?raz=$1dva=$2&tri=$3&chetire=$4

1. амперсенд перед dva случайно убран или намеренно?

>RewriteRule ^$1/$2/$3$4$
2. и как системе отличить, где кончилось $3 и началось $4?

   
 
 автор: slonik   (12.10.2006 в 20:22)   письмо автору
 
   для: Trianon   (12.10.2006 в 20:09)
 

амперсенд убран случайно.

так вот не хватает богажа знаний, как отделить 3 и 4, подскажешь?

   
 
 автор: Trianon   (12.10.2006 в 20:24)   письмо автору
 
   для: slonik   (12.10.2006 в 20:22)
 

Ну а сами-то Вы по каким признакам отделяете?
А насчет подсказать, так ведь ни одного реального примера URI у Вас нет. Мало данных.

   
 
 автор: slonik   (12.10.2006 в 20:41)   письмо автору
 
   для: Trianon   (12.10.2006 в 20:24)
 

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

А по поводу реальной ссылки, вот:

sait.ru/index.php?raz=nazvanie_faila&dva=generaciya_lubogo_chisla&tri=imya_faila&chetire=dop_nazvanie_k_imeni_fayla

другими словами

sait.ru/index.php?raz=zverek.jpg&dva=37rgwerg35t54g3354g55ferf3f324fd2&tri=zveri&chetire=_skacheno_s_sait.jpg

тоесть таким образом я хочу брать файл (raz)
генерить для него уникальный адрес (dva)
менять название файла (tri)
подставлять к названию разные надписи (chetire)

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

в конечном итоге хочу получить адрес такой:
sait.ru/zverek.jpg/37rgwerg35t54g3354g55ferf3f324fd2/zveri_skacheno_s_sait.jpg

будет классно, если можно будет обойтись и без zverek.jpg, но вроде тогад вообще скрипт не поймёт, что я от него хочу, т.к. с помощью этого названия файл и ищется на сервере.

   
 
 автор: Trianon   (12.10.2006 в 21:00)   письмо автору
 
   для: slonik   (12.10.2006 в 20:41)
 

Давайте от печки. То есть от ссылки.
В ссылке, по которой файл будут тянуть, Вы что напишете?

<a href="

дальше?

   
 
 автор: slonik   (12.10.2006 в 21:06)   письмо автору
 
   для: Trianon   (12.10.2006 в 21:00)
 

хочу написать:
sait.ru/zverek.jpg/37rgwerg35t54g3354g55ferf3f324fd2/zveri_skacheno_s_sait.jpg

но чтобы сработало, как:
sait.ru/index.php?raz=zverek.jpg&dva=37rgwerg35t54g3354g55ferf3f324fd2&tri=zveri&chetire=_skacheno_s_sait.jpg

   
 
 автор: Trianon   (12.10.2006 в 21:11)   письмо автору
 
   для: slonik   (12.10.2006 в 21:06)
 

ну, во первых, если написать

<a href="sait.ru/zverek.jpg/37rgwerg35t54g3354g55ferf3f324fd2/zveri_skacheno_s_sait.jpg">
то ничего хорошего не выйдет.

Но, допустим, Вы имели в виду

<a href="http://sait.ru/zverek.jpg/37rgwerg35t54g3354g55ferf3f324fd2/zveri_skacheno_s_sait.jpg">


Вопрос: как серверу понять, что zveri относится к третьему параметру, а _skacheno_s_sait.jpg - к четвертому?
По первому символу подчеркивания чтоли?
А если его не будет?
Или он всегда будет в таких ссылках?

   
 
 автор: slonik   (12.10.2006 в 21:16)   письмо автору
 
   для: Trianon   (12.10.2006 в 21:11)
 

Нет, он не всегда будет..это я как пример..

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

кстати, почти все данные передаются через переменные.

_ _ _ _ _

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

   
 
 автор: Trianon   (12.10.2006 в 21:21)   письмо автору
 
   для: slonik   (12.10.2006 в 21:16)
 

Если он будет не всегда - значит признака разделения полей 3 и 4 нет вообще, и Вы сами не в состоянии будете разбить эту строку однозначно. Выходит, задачу решать рано.

   
 
 автор: Roo$   (12.10.2006 в 21:24)   письмо автору
 
   для: Trianon   (12.10.2006 в 21:21)
 

Извените за наглость. Но мне срочно нужно. Помогите мне с таким вопросом...
Есть один php файл (index.php). В нем есть две ссылки index.php?zadanie=1 и index.php?zadanie=2. Как сделать проверку что если нажата первая ссылка то выполн. задание 1 а если вторая ссылка то 2.

   
 
 автор: slonik   (12.10.2006 в 21:24)   письмо автору
 
   для: Trianon   (12.10.2006 в 21:21)
 

угу, понятно.. буду думать. спасибо за помощь

Roo$ : 5 баллов :)))

   
 
 автор: slonik   (12.10.2006 в 21:28)   письмо автору
 
   для: slonik   (12.10.2006 в 21:24)
 

Roo$: я не знаю, как это делать правильно, но я бы выдрал из строки число методом $_GET...а дальше уже обычным образом сделать если 1, то выполнить это.. если не 1..то с помощью else выполнить другую задачу.

   
 
 автор: Roo$   (12.10.2006 в 21:48)   письмо автору
 
   для: slonik   (12.10.2006 в 21:28)
 

Так можно было попробывать если бы было у меня на форме кнопка. А так ссылка...

   
 
 автор: slonik   (12.10.2006 в 21:52)   письмо автору
 
   для: Roo$   (12.10.2006 в 21:48)
 

Чёт я тя не понял... Вот у тя есть index.php
В нём делаешь переменную такого типа:
$ok = ($_GET['zadanie']);
А дальше переменную передаёшь в if

   
 
 автор: Roo$   (12.10.2006 в 21:58)   письмо автору
 
   для: slonik   (12.10.2006 в 21:52)
 

Все понял тебя....Большое спасибо... Это то что мне нужно. Просто сначало я не понял тебя.

   
 
 автор: slonik   (12.10.2006 в 22:02)   письмо автору
 
   для: Roo$   (12.10.2006 в 21:58)
 

Обращайся, рад что помог.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования