Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Подскажите с реализацией rewrite


Автор: Master_ 13.1.2008, 00:26
Код

CREATE TABLE IF NOT EXISTS `gallery_cats` (
  `id` tinyint(4) NOT NULL auto_increment,
  `parent_id` tinyint(4) NOT NULL default '0',
  `name` varchar(255) character set latin1 NOT NULL,
  `dir` varchar(255) character set latin1 NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=11 ;

-- 
-- Дамп данных таблицы `gallery_cats`
-- 

INSERT INTO `gallery_cats` (`id`, `parent_id`, `name`, `dir`) VALUES 
(8, 0, 'Рабочие столы', 'desktops'),
(9, 8, 'KDE4', 'kde4'),
(10, 9, 'Desktop', 'kdedesktop');


Можно конечно реалзовать вот так:
Код

RewriteRule ^gallery/cats/([0-9a-zA-Z]*)/?$ index.php?act=gallery&do=cat&gallery_dir=$1

RewriteRule ^gallery/cats/([^/]*)/([0-9a-zA-Z]*)/?$ index.php?act=gallery&do=cat&gallery_dir=$2

RewriteRule ^gallery/cats/([^/]*)/([0-9a-zA-Z]*)/([0-9a-zA-Z]*)/?$ index.php?act=gallery&do=cat&gallery_dir=$3

Но некрасиво и не совсем правильно.

В принципе так работает но работает безперспективно. Имею ввиду сайт.ру/gallery/cats/раздел/подраздел/подраздел_подраздела/
К тому же последние имена могут совпадать и будет работать неверно.

Дайте советы в реализации, как можно сделать?  smile 

Автор: GeneralElectric 13.1.2008, 00:38
а почему бы все запросы к галерее не передавать в индекс, а там уже разбирать средствами пхп - немного более мощными, чем rewrite?

Автор: Master_ 13.1.2008, 00:49
Я с реврайтами не силен, можно пример?
или там вообще чисто на php обрабатывать? Инструкция нужна в htaccess?

Автор: GeneralElectric 13.1.2008, 01:03
Ну разумеется, нужна. Как-то эти запросы должны в скрипт попадать?
Как-то так:
RewriteRule  ^(/gallery/.*)$ index.php?path=$1 [QSA,L]
В скрипте разобрать переменную path уже как угодно.
Вообще, примеров в сети море. Да вот рядом буквально - соседний топик на ту же самую тему.


Автор: Master_ 13.1.2008, 10:57
Ну это понятно.

Гланый вопрос то в том, как реализовать сайт.ру/gallery/cats/раздел/подраздел/подраздел_подраздела/.
Если брать только последнее /.../ то название может совдать с каким-либо разделом, находящемся в другой категории.
Вот как это проверять?

Автор: GeneralElectric 13.1.2008, 11:59
по базе

Автор: Master_ 13.1.2008, 12:09
Мне эти слова ничего не дают..

Автор: GeneralElectric 13.1.2008, 14:21
Цитата(Master_ @  13.1.2008,  10:57 Найти цитируемый пост)
Если брать только последнее /.../ то название может совдать 

Правильно.
Ну ты же сам пишешь, что если брать только последнее, то может совпадать.
Значит, простой вывод - надо брать не только последнее, да? 
Значит надо брать все. Берем первую категорию, получаем её id, берем вторую с таким парентом, потом так же для третьей. И так далее.
Простая ж логика вроде?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)