Как пользоваться модулем Mod_Rewrite

Написал Lex Luthor, в Статьи » WEB.
Наверное, все из вас знают что такое интернет, сайт и Apache (веб-сервер). Немного углубившись в структуру веб-сервера скажу, что у апача есть еще и много модулей, которые обеспечивают работоспособность сайту. Сегодня вы узнаете что за модуль mod_rewriter, что он делает и как его настраивать...

Скорее всего все вы, заходя на какой-нибудь сайт, видели ссылки типа - http://www.web-coder.ru/files/ или http://web-coder/states/state_553.html. Ну, с первым вариантом все просто скажете вы: в каталоге лежит файлик index.php и он загружается по умолчанию, вот поэтому адрес и имеет такой вид. Допустим, но что делать со вторым? Ведь врятли на крупном портале каждая статья будет редактироваться и вставляться в файл *.html руками? А как же скрипты на странице? Неужели настраивали весь сервер? Но, это непрактично !

На самом деле страничка имеет вид такой - http://web-coder/module.php?area=state&numer=553. Вот этим и занимается модуль mod_rewrite. Он заменяет ссылки одного типа на другие. Его использование имеет много плюсов. Во-первых, повышается защита, т.к. хакер не знает о структуре вашего сайта и о запросах, которые посылает ваш скрипт. Во-вторых, получаются красивые и легко читаемые ссылки. В-третьих, некоторые поисковики легче индексируют такие ссылки. Сокращенно это называют ЧПУ (человеко-понятный URL). Итак, начнем менять ссылки вашего сайта...

Для начала в корневой папке вашего сайта должен находиться файл .htaccess. Если он уже есть хорошо, а если нет, то создайте.

В начале пишите:
RewriteEngine On

эта строка включает модуль
RewriteBase /

это ссылка на папку вашего сайта
Дальнейшие строки будут зависеть от структуры вашего сайта. Смотрите на пример:
RewriteRule ^catalog/dir([0-9]*)/ /module.php?section=catalog&area=dir&id=$1

Вот эта строка - /module.php?section=catalog&area=dir&id=$1 - означает какой адрес нужно заменить. А вот эта - ^catalog/dir([0-9]*)/ - чем заменить. Заметьте в 1 строке в конце стоит переменная $1. Она означает любой набор символов, который должен находиться в этом месте и который будут заменять. Во 2 строке стоит запись - dir([0-9]*). Она означает, что будут заменяться все числа из 1 строки.

То есть, если в 1 строке заместо переменной будет стоять число, то 1 строка замениться 2 строкой с этим числом после слова dir. Если же в 1 строке будет слово, то ничего не заменится и не будет работать.

В моем примере я заменяю только числа, но вы можете менять и слова и слова с числами, но для этого вам придется писать более длинное регулярное выражение. Мой вам совет: когда можно, упрощайте вид ссылок. Не надо громоздить ссылки из 300 символов, чем ссылка меньше тем ее лучше запомнить.

Помните, что в самом скрипте вы можете принимать данные из строки запроса как будто там стоит 1 строка, но ссылаться должны на ссылки, имеющие вид 2 строки.

Источник : Как пользоваться модулем Mod_Rewrite
#1 Lex Luthor |  

Когда выкладывал даже не замечал что в статье порядка двух ошибок feel
Дата публикации: 8 сентября 2008 07:49 | ICQ: --
цитировать
#2 truelester |  

Оценил и проглотил ))
Дата публикации: 10 ноября 2008 18:29 | ICQ: --
цитировать
#3 Vanger |  

блин, статья про мод_рерайт лежит
а у нас самих на сайте он НЕ РАБОТАЕТ ))))
Дата публикации: 24 декабря 2008 23:22 | ICQ: --
цитировать
#4 Dr_Evil |  

блин, статья про мод_рерайт лежит
а у нас самих на сайте он НЕ РАБОТАЕТ ))))

Так ли он необходим на самом деле? Есть и др. модули защиты, например mod_security, mod_evassive...
И будет ли работать этот модуль, если ЧПУ движка отключен...
Дата публикации: 21 апреля 2009 01:14 | ICQ: --
цитировать
#5 Vanger |  

вообще, мы его не для секурити используем, а для красивых URL.
будет ли работать модуль если ЧПУ отключен в движке сайта - это имелось в виду?
работать будет (если попытаться перейти по ссылке, сформированной по правилам ЧПУ, то все будет нормально), но ссылки на сайте будут отображаться обычные, не ЧПУшные
Дата публикации: 21 апреля 2009 22:26 | ICQ: --
цитировать
#6 Dr_Evil |  

вообще, мы его не для секурити используем, а для красивых URL.
будет ли работать модуль если ЧПУ отключен в движке сайта - это имелось в виду?
работать будет (если попытаться перейти по ссылке, сформированной по правилам ЧПУ, то все будет нормально), но ссылки на сайте будут отображаться обычные, не ЧПУшные

Ясно.
Дата публикации: 21 апреля 2009 23:00 | ICQ: --
цитировать

Добавить комментарий


Включите эту картинку для отображения кода безопасности
обновить код



 

Лучшие новости

Наш опрос

Мы в интернете


Профиль

Добро пожаловать, гость. Войдите, или зарегистрируйтесь.
Логин:

Пароль:

Забыли пароль?

Друзья


хомяк Немиро Алексея


Музыка микросхем
Хак-академия

Интересные ссылки


Кухни от производителя - отделка кухни.
Велосипеды! Распродажа: горные велосипеды. Вело-барахолка.