Danneo CMS Форум
 Перейти на сайт
Главная Регистрация FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны
              

Вернуться   Danneo CMS Форум > Веб / Web > PHP / MySQL
Логин
Пароль

PHP / MySQL Программирование, базы данных.

Самые активные пользователи нашего форума :
Лучшие из лучших wask (2458), apogodaev (858), sabotage (830), Andry (747), darkgod (683), Tyler Oyu (679), tot:) (550), Musmaniak (544), sumr (462), sotnik (460)

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 20.09.2005, 00:58
Dantes
Мужчины с флагом
 
Аватар для Dantes
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
Dantes отключил(а) отображение уровня репутации
По умолчанию mod_rewrite

mod_rewrite для РКМС - как механизм.

Подробная документация по mod_rewrite тут :
http://www.egoroff.spb.ru/portfolio/...riteguide.html

Конкретно для нашей кмс.
ЧПУ - ЧеловекоПонятныеУРЛ
Задействованные файлы :
/temp/head.php
/temp/foot.php
/.htaccess

В /temp/head.php в функиции urlrewrite
идёт инциализация замен в буфере(буфер включается предварительно до вызова функции ob_start ).

Массивы функции urlrewrite :
$re - Шаблон поиска замен
$out - Сами замены

/temp/foot.php
PHP код:
$contents=ob_get_contents();
ob_end_clean();
echo
urlrewrite($contents);
в переменную $contents "собираем" весь буффер, "зачищаем"
и выводим весь контент, обрабатывая его функцией urlrewrite.
__________________
Всем прочесть ...

Последний раз редактировалось Dantes, 21.09.2005 в 01:37.
     Ответить с цитированием

  #2  
Старый 20.09.2005, 01:08
Dantes
Мужчины с флагом
 
Аватар для Dantes
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
Dantes отключил(а) отображение уровня репутации
По умолчанию .htaccess

Документация по .htaccess есть тут :
http://dweb.ru/articles/index.php?idart=85

В нашем случае, .htaccess это лишь обработчик для ЧПУ. Всё довльно таки просто, читая урл он выдаёт документ удовлетворяющий описанию.
__________________
Всем прочесть ...
     Ответить с цитированием

  #3  
Старый 20.09.2005, 01:52
Dantes
Мужчины с флагом
 
Аватар для Dantes
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
Dantes отключил(а) отображение уровня репутации
По умолчанию а не зачпушить ли нам мод ???

Тут, мы описали создание простейшего мода :
что нам стоит мод построить ?!

Ну так давайте теперь его, заЧПУшим для примера ....

Задействованные файлы :
/temp/head.php
/.htaccess

путь до нашего мода hello браузером, такой :
index.php?dn=hello

Открываем файл /temp/head.php, ищем функцию urlrewrite.
В ней ищем в массиве $re что-то в роде :
PHP код:
// MAIL
"'(?<!/)index.php\?dn=mail'",
Это шаблоны замены мода mail
Добавим после как в ниже приведённом коде
PHP код:
// MAIL
"'(?<!/)index.php\?dn=mail'",
// HELLO
"'(?<!/)index.php\?dn=hello'",
........
Это мы добавили, шаблон замены для нашего мода hello. Теперь надо додавить на что менять. Это у нас какой массив ? Правильно $out !
В $out ищем
PHP код:
// MAIL
"mail/index.html",
Это замена для мода mail
Добавим после как в ниже приведённом коде
PHP код:
// MAIL
"mail/index.html",
// HELLO
"hello/index.html",
Вот мы и добавили значение замены для мода hello. То есть ссылка index.php?dn=hello станет hello/index.html
Это достижение ! Но пока не рекорд !
Последний бой он трудный самый !
Осталось в .htaccess добавить описание. Открываем его и ищем
PHP код:
# MAIL #
RewriteRule ^mail/index.html index.php?dn=mail [NC]
RewriteRule ^mail/ index.php?dn=mail [NC]
RewriteRule ^mail index.php?dn=mail [NC]
# MAIL #
Добавим после как в ниже приведённом коде
PHP код:
# MAIL #
RewriteRule ^mail/index.html index.php?dn=mail [NC]
RewriteRule ^mail/ index.php?dn=mail [NC]
RewriteRule ^mail index.php?dn=mail [NC]
# MAIL #
# hello #
RewriteRule ^hello/index.html index.php?dn=hello [NC]
RewriteRule ^hello/ index.php?dn=hello [NC]
RewriteRule ^hello index.php?dn=hellol [NC]
# hello #
Дальше набираем в браузере http://your-site.ru/hello/index.html и лицезреем ваш мод Хелло ....
Желаем удачи !
__________________
Всем прочесть ...

Последний раз редактировалось Dantes, 21.09.2005 в 01:38.
     Ответить с цитированием

  #4  
Старый 23.10.2005, 21:11
Dantes
Мужчины с флагом
 
Аватар для Dantes
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
Dantes отключил(а) отображение уровня репутации
По умолчанию

* Заметка

.htaccess
PHP код:
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
<IfModule mod_dir.c> - Значит если у апачи mod_dir есть, то будет выполнятся DirectoryIndex index.html index.php

Тоже самое и с mod_rewrite
PHP код:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase
/
RewriteRule ^index.html index.php
</IfModule>
То есть с таким .htaccess - 500 ошибки по идее быть не должно.

Просто для любопытных ....
PHP код:
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image
/jpeg "access plus 1 day"
ExpiresByType image/gif "access plus 1 day"
</IfModule>
Кэшировать графику формата jpeg и gif сроком на 1 день ....
__________________
Всем прочесть ...
     Ответить с цитированием

  #5  
Старый 02.01.2006, 18:44
Dantes
Мужчины с флагом
 
Аватар для Dantes
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
Dantes отключил(а) отображение уровня репутации
По умолчанию

Ещё доки
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
__________________
Всем прочесть ...
     Ответить с цитированием

  #6  
Старый 03.01.2006, 10:37
morlok
Сообщения: n/a
По умолчанию

неуспеваю переваривать
     Ответить с цитированием

  #7  
Старый 15.10.2007, 11:22
Nick
Теперь отец
 
Аватар для Nick
Регистрация: 29.06.2005
Адрес: Красноярск
Сообщения: 83
Nick имеет средний уровень репутацииNick имеет средний уровень репутацииNick имеет средний уровень репутации
По умолчанию Re: mod_rewrite

Помогите, люди добрые! Дайте файлы или ссылки на файлы для mod_rewrite под винду. Не хоца Денвер тянуть.
Спасибо!
     Ответить с цитированием

  #8  
Старый 15.10.2007, 11:49
tot:)
Живу тут
 
Аватар для tot:)
Регистрация: 25.11.2005
Адрес: Perm
Сообщения: 550
tot:) имеет высокий уровень репутацииtot:) имеет высокий уровень репутацииtot:) имеет высокий уровень репутацииtot:) имеет высокий уровень репутации
Отправить сообщение для tot:) с помощью ICQ
По умолчанию Re: mod_rewrite

хз, достаточно этого или нет)...
файл mod_rewrite.so из Apache Денвера, у меня лежал по пути:
\server\usr\local\apache\modules\
в httpd.conf включи его.
Вложения
Тип файла: zip modules.zip (17.4 Кбайт, 1 просмотров)
__________________
Не сравнивайте ничего с ничем - и быть вам тогда подобным самому себе, ибо вас тоже ни с чем не сравнят. А иначе были вы - все равно что не были...
     Ответить с цитированием

  #9  
Старый 16.10.2007, 15:47
Nick
Теперь отец
 
Аватар для Nick
Регистрация: 29.06.2005
Адрес: Красноярск
Сообщения: 83
Nick имеет средний уровень репутацииNick имеет средний уровень репутацииNick имеет средний уровень репутации
По умолчанию Re: mod_rewrite

Спасибо!!! Огромное!! Работает!
     Ответить с цитированием

Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:23.

Rambler's Top100   
vBulletin v3.6.7, Copyright ©2000-2007
Лицензировано для www.danneo.com
Обратная связь - Danneo CMS Форум - Архив - Вверх