Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: mod_rewrite - нужна помощь...
Покинул форум
Сообщений всего: 5
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Всем привет.
Хочу сделать на сайте ЧПУ. Cms самописная.
Вопрос в следующем как это реализовать или где прочитать про примеры реализации.
Имеется страница ввида
- razdel?id=x ( где х - любое целое число)
хочется получить запись такого вида
/razdel/buhgalteriya/ ( слово "buhgalteriya" берется из БД по id = x)
biperch
Отправлено: 09 Августа, 2010 - 16:13:02
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
немного не то:
razdel?id=x
можно так зделать
/razdel/х/
klowun
Отправлено: 09 Августа, 2010 - 16:32:01
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
biperch пишет:
немного не то:
razdel?id=x
можно так зделать
/razdel/х/
Спасибо. Но мне это ничего не даст.
Яндекс обращает внимание на название страницы, и в поиске страницы будут выше если есть ключевые слова. И мне ничего не даст страница вида razdel/52/ - никакой смысловой нагрузки.
p.s. может переделать страницы для начала так, razdel?name=buhgalteria
biperch
Отправлено: 09 Августа, 2010 - 16:39:28
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
не обязательно razdel/52/
можно и razdel/buhgalteriya/ только не искать по значению ( слово "buhgalteriya" берется из БД по id = x)
тут смысл через черточку перечисляются только значения переменных дабы скрыть кому эти значения присваиваются
klowun
Отправлено: 09 Августа, 2010 - 16:46:14
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Переменные скрыты, то есть я сам не смогу сформировать вид ЧПУ?
....у меня к примеру razdel?id=52 тоже самое отображается razdel?name=buhgalteriya
и что ни как подменить нельзя?
p.s. запутался...и уже не понимаю
biperch
Отправлено: 09 Августа, 2010 - 16:49:59
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Помог: 8 раз(а)
razdel?x=1&y=2&z=3
делает
razdel/1/2/3
klowun
Отправлено: 09 Августа, 2010 - 16:54:16
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
biperch пишет:
razdel?x=1&y=2&z=3 делает razdel/1/2/3
Мне надо чтобы было слово buhglteriya в ссылке
то бишь не из бежать такой ссылки
razdel?name=buhgalteriya
p.s. я так не играю...
biperch
Отправлено: 09 Августа, 2010 - 16:59:58
Частый посетитель
Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009 Откуда: Днепропетровск
Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010
Помог: 0 раз(а)
klowun пишет:
у меня к примеру razdel?id=52 тоже самое отображается razdel?name=buhgalteriya
1) в коде страницы вы формируете ссылки подставляя name текущей записи
2) при обращении по этой ссылке (/buhgalteriya/) в файле штаксес делаете преобразование обратно:
RewriteRule /([^\/]+)/ index.php?name=$1 [NC,L]
т.е любая буквенная последовательность будет передана в переменную $_GET['name'] (Добавление)
а уже для переменной $_GET['name'] ищете соответствие в вашей базе данных
----- Хостинг - неограниченно доменов на одну папку Ajax - отличное введение
JustUserR
Отправлено: 10 Августа, 2010 - 03:23:00
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
klowun пишет:
Вопрос в следующем как это реализовать или где прочитать про примеры реализации
Для реализации предварительной обработки виртуальных web-путей заданных по определенному шаблону - можно использовать настройки web-сервера которые позволят установить для них специальный MIME-тип для передачи их на обработку некоторому CGI-скрипту - которые произведет на основе их анализа генерацию нужной HTML-страницы При использовании Apache соответствующими директивам будет AddType для создания специального управляющего MIME-типа и Action для выбора обрабатывающего CGI-скрипта - а также директива Files/Directory[Match] которая позволяет определить шаблон виртуального web-пути который должен быть программно обработан Кроме того благодаря возможности каскадного исполнения - в качестве CGI-скрипта может выступать PHP-приложение которое сразу будет осуществлять соответствующий вывод страниц
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
klowun
Отправлено: 10 Августа, 2010 - 10:51:40
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Всем спасибо.
Как я понял сделаю карту преобразований, в котором мой id будет преобразовываться
к слову из карты.
Возникает вопрос, а если у меня этих id более 50 000, не замедлит ли это??
JustUserR
Отправлено: 11 Августа, 2010 - 02:46:30
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
klowun пишет:
Возникает вопрос, а если у меня этих id более 50 000, не замедлит ли это??
Ресурсоемкость полученной системы обработки web-запросов зависит от ее реализации - в частности если web-сервер настроен для передачи некоторого шаблона виртуальных частей URL-адресов некоторому программному обработчику - то при использовнии директив с достаточным обобщением типа Directory такое перенаправление будет происходить достаточно эффективно - и дальшейная ресурсоемкость зависит от самого обрабатывающего CGI-скрипта
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.