|
|
|
| У меня есть url
http://mysite.ru/?page=news&action=show&id=43
|
Как сделать при помощи mod rewrite чтобы было
http://mysite.ru/news/?id=43
|
Причем чтобы при уже измененном пути $_GET['action'] и $_GET ['page'] возвращало news и show соответсвенно?
---------------------------------------------------------------------------
И еще вопрос как реализуют передачу данных в строке запросв по такому виду:
http://mysite.ru/news/today/
|
где news-раздел, today - подраздел.
Не может же быть чтобы url было изначально, ну допустим
http://mysite.ru/?page=news&page2=today
|
а потом пределано реврайтом? А если уровень вложенности больше 2-х?
Это что-ж, если уровень вложенности допустим 5,т.е
news
|
today
|
blabla
|
blablabla
|
bla
то надо в строке запроса передавать:
http://mysite.ru/?page=news&page2=today&page3=blabla&page4=bla&page5=blablabla
чтобы было:
http://mysite.ru/news/today/blabla/bla/blablabla ? | |
|
|
|
|
|
|
|
для: off
(28.11.2005 в 19:49)
| |
http://mysite.ru/news/?id=43
|
А action=show у Вас куда подевалось?
>Не может же быть чтобы url было изначально, ну допустим
http://mysite.ru/?page=news&page2=today
а потом пределано реврайтом?
Почему же не может. Так и делают.
>Это что-ж, если уровень вложенности допустим 5,т.е
Передача 5-ти параметров в URL - это в общем-то совсем не много.
А потом может быть 1 или 2 (или 3 или 4) поддиректории реальных, а оставшиеся появляются преобразованиями mod_rewrite. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(30.11.2005 в 23:44)
| | А вот в том то и вопрос. Можно ли скрыть action=show, но чтобы его можно было взять методом GET ? | |
|
|
|
|
|
|
|
для: off
(02.12.2005 в 20:34)
| | И еще вопр. а если уровень вложенности неограниченый (как это сделано у многих коммерческих cms)? | |
|
|
|
|
|
|
|
для: off
(02.12.2005 в 20:34)
| | >А вот в том то и вопрос. Можно ли скрыть action=show
Нет, скрыть нельзя. Можно как-то по другому зашифровать, например, так:
http://mysite.ru/news/show/?id=43
|
Но выглядит коряво.
Единственно, может быть у Вас всегда параметр action принимает значение show. Тогда, конечно, можно его не писать.
> а если уровень вложенности неограниченый (как это сделано у многих коммерческих cms)?
Что-то не понял вопроса. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(02.12.2005 в 21:15)
| | Допустим в cms реализована возможность создавать разделы бесконечного уровня вложенности. Т.е так:
1
|
2
|
3
|
4
|
5
|
... и так может быть сколько угодно
Как должен выглядеть сам url чтобы добится такого резулятата : http://site.ru/1/2/3/4/5/...... и т.д,
ведь не известно сколько пользователь может создать уровней вложенности?
А в большинстве коммерческих cms такое вроде бы реализованно.... | |
|
|
|
|
|
|
|
для: off
(04.12.2005 в 21:19)
| | Но возможность создавать бесконечную вложенность разделов не означает, что они будут дублироваться в URL в следующем виде.
http://site.ru/1/2/3/4/5/
|
Логичней просто передавать идентификатор раздела
http://site.ru/index.php?id_pazdel=23
|
А уж какая там структура, насколько глубоко этот раздел находится и как дерево разделов построить – это уж пусть php-скрипт этим занимается.
Лично я не встречал CMS, работающих именно по такой схеме создания разделов
http://site.ru/1/2/3/4/5/
|
Да и сам бы не стал реализовывать такую схему. Слишком длинные URL будут получаться. Неудобно пользователям. Да и реализовывать подобную схему тоже неудобно. А если уж непременно нужно было сделать именно так, то сделал бы физическое создание директорий, без привлечения модулей Apache. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(04.12.2005 в 23:40)
| | Вот например design.ru, demo.abocms.ru, bitrix.ru зделаны по такому принципу.
http://site.ru/1/2/3/4/5/
ОК. Возник еще один вопр. Как можно передать данные при клике по ссылке, не используя методов $_GET и $_POST ?
Т.е есть скрипт. Если id=1 то выводиться конкретная новость. Ели нет id, то выводиться список новостей.
Допустим:
Есть страница ссылающаяся на скрипт по ссылке http:site.ru/script.php?id=1.
В этом случае выводиться новость под номером 1. А можно ли сделать так, чтобы ссылка выглядела http:site.ru/script.php (без id=1),а значение переменной id как нибудь передавалось другим образом ? | |
|
|
|
|
автор: glsv (06.12.2005 в 15:15) |
|
|
для: off
(05.12.2005 в 14:19)
| | >В этом случае выводиться новость под номером 1. А можно ли сделать так, чтобы ссылка выглядела http:site.ru/script.php (без id=1),а значение переменной id как нибудь передавалось другим образом ?
Нет. так сделать нельзя. | |
|
|
|
|
|
|
|
для: glsv
(06.12.2005 в 15:15)
| | Ясно. Тада только методом Post чтобы в адресной строке не видно было.
А можно, чтобы вместо кнопки submit была ссылка ане не кнопка? | |
|
|
|
|
|
|
|
для: off
(06.12.2005 в 18:00)
| | >А можно, чтобы вместо кнопки submit была ссылка ане не кнопка?
Вообще можно. С помощью JavaScript. Но какая у Вас стоит задача? Я предполагал, что сделать красивые ссылки. Или что-то другое нужно сделать?
Если же нужно сделать красивые ссылки, то POST - это тупиковый путь. Красивые ссылки ведь нужны для того, чтобы посетитель их запомнил и при возможности мог вернуться. А если Вы всю навигацию сделаете методом POST, то посетитель никуда вернуться не сможет. Он то ведь только GET может использовать. А GET ему нужную страницу не покажет, т.к. необходимых параметров там не будет. | |
|
|
|