|
|
PHP / MySQL Программирование, базы данных. |
 20.09.2005, 00:58
|
Мужчины с флагом
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
|
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.
|
|
|
 20.09.2005, 01:08
|
Мужчины с флагом
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
|
.htaccess
Документация по .htaccess есть тут :
http://dweb.ru/articles/index.php?idart=85
В нашем случае, .htaccess это лишь обработчик для ЧПУ. Всё довльно таки просто, читая урл он выдаёт документ удовлетворяющий описанию.
__________________
Всем прочесть ...
|
|
|
 20.09.2005, 01:52
|
Мужчины с флагом
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
|
а не зачпушить ли нам мод ???
Тут, мы описали создание простейшего мода :
что нам стоит мод построить ?!
Ну так давайте теперь его, заЧПУшим для примера ....
Задействованные файлы :
/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.
|
|
|
 23.10.2005, 21:11
|
Мужчины с флагом
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
|
* Заметка
.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 день ....
__________________
Всем прочесть ...
|
|
|
 02.01.2006, 18:44
|
Мужчины с флагом
Регистрация: 02.06.2005
Адрес: Иркутск
Сообщения: 2,731
|
Ещё доки
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
__________________
Всем прочесть ...
|
|
|
 03.01.2006, 10:37
|
|
неуспеваю переваривать
|
|
|
 15.10.2007, 11:22
|
Теперь отец
Регистрация: 29.06.2005
Адрес: Красноярск
Сообщения: 83
|
Re: mod_rewrite
Помогите, люди добрые! Дайте файлы или ссылки на файлы для mod_rewrite под винду. Не хоца Денвер тянуть.
Спасибо!
|
|
|
 15.10.2007, 11:49
|
Живу тут
Регистрация: 25.11.2005
Адрес: Perm
Сообщения: 550
|
Re: mod_rewrite
хз, достаточно этого или нет)...
файл mod_rewrite.so из Apache Денвера, у меня лежал по пути:
\server\usr\local\apache\modules\
в httpd.conf включи его.
__________________
Не сравнивайте ничего с ничем - и быть вам тогда подобным самому себе, ибо вас тоже ни с чем не сравнят. А иначе были вы - все равно что не были...
|
|
|
 16.10.2007, 15:47
|
Теперь отец
Регистрация: 29.06.2005
Адрес: Красноярск
Сообщения: 83
|
Re: mod_rewrite
Спасибо!!! Огромное!! Работает!
|
|
|
Здесь присутствуют: 1 (пользователей - 0 , гостей - 1) |
|
Опции темы
|
|
Опции просмотра
|
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +3, время: 02:23.
vBulletin v3.6.7, Copyright ©2000-2007
 Лицензировано для www.danneo.com
|
|
|