Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите с реализацией rewrite 
:(
    Опции темы
Master_
  Дата 13.1.2008, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Код

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 
PM   Вверх
GeneralElectric
Дата 13.1.2008, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



а почему бы все запросы к галерее не передавать в индекс, а там уже разбирать средствами пхп - немного более мощными, чем rewrite?
PM MAIL   Вверх
Master_
Дата 13.1.2008, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Я с реврайтами не силен, можно пример?
или там вообще чисто на php обрабатывать? Инструкция нужна в htaccess?
PM   Вверх
GeneralElectric
Дата 13.1.2008, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



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


PM MAIL   Вверх
Master_
Дата 13.1.2008, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Ну это понятно.

Гланый вопрос то в том, как реализовать сайт.ру/gallery/cats/раздел/подраздел/подраздел_подраздела/.
Если брать только последнее /.../ то название может совдать с каким-либо разделом, находящемся в другой категории.
Вот как это проверять?
PM   Вверх
GeneralElectric
Дата 13.1.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



по базе
PM MAIL   Вверх
Master_
Дата 13.1.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Мне эти слова ничего не дают..
PM   Вверх
GeneralElectric
Дата 13.1.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



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

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

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.