mod_rewrite: документация, готовые решения, вопросы

Главные вкладки

Аватар пользователя lukaxucishvili lukaxucishvili 20 октября 2011 в 0:46

mod_rewrite

Вот уже несколько раз встретился с этим вопросом. Недавно в тех. задании было указано что проект должен быть оптимизирован под поисковые системы. Поискав немного попал на mod_rewrite. Оказывается что mod_rewrite очень и очень полезная вещь. Вот несколько причин почему я решил разобраться с данным зверем:

1. Если вы пишите форумы, сайт с новостями или любой сайт в котором есть конструкция hттp://mybestsite.com/article.php?n=3&page=1. Вы рано или поздно встретитесь с проблемой лицом к лицу, у таких сайтов есть огромный минус: адрес сайта выглядит для пользователей не "нормально", такой адрес не индексируется многими поисковыми системами, удаляется все после знака "?". Ниже приведенные ссылки для него все одни, но просмотрев их он получает разное содержимое (Что плохо сказывается на статистику вашего сайта)

Код:
hттp://mybestsite.com/article.php?n=3&page=1
hттp://mybestsite.com/article.php?n=5&page=2
hттp://mybestsite.com/article.php?n=6&page=7

Пользователи у которых нету базовых знаний в Web программировании не могут понять что значит текст после article.php (?n=3&page=1). С использованием mod_rewrite можно на лету преобразовывать адреса типа

Код:
hттp://mybestsite.com/article.php?n=3&page=1

в такой, более понятный и привычный для обыкновенных пользователей

Код:
hттp://mybestsite.com/articles/3/page1.htm

А самое интересное что файл page1.htm вообще не существует, и пользователю не известен путь к файлу к которому он обращается и поисковые системы воспринимают такой адрес как обыкновенную ссылку на html страничку.

2. С помощью mod_rewrite можно запретить скачивать ваши материалы с других сайтов, на собирание которых вы провели бессонные ночи. Например: у вас есть файл bestprogram.zip, у вас на страничке есть линк

Код:
Download

какой-то придурок залазит на ваш сайт, просмотривает html код вашей странички и размещает туже ссылку но уже у себя на сайте.

Код:
Download

и она будет работать без проблем, за трафик будет платить вы а слава и благодарности этому придурку! С помощью mod_rewrite можно запретить cкачивание файлов если referer не ваш сайт

Думаю этого достаточно что бы потратить несколько часов на изучение данного материала. Ниже привожу документацию по данному вопросу:
Русские ресурсы

* Полная документация, но мне показалась сухой, мало полезных и главное наглядных примеров
* Цикл статей, довольно полная и хорошо написанная документация: Часть 1, Часть 2, Часть 3, Часть 4.
* Немного практических решений, подойдет тем кто уже разбирается в вопросе
* «Человекопонятный УРЛ» Не совсем в тему, но тоже хорошо от edogs

Английские ресурсы

* Module mod_rewrite URL Rewriting Engine

Необходимые навыки:

* Синтаксис регулярных выражений (плагин к IE для просмотра DjVu-файлов) от SiMM
* Фридл Дж. Регулярные выражения на wmate.ru

Настройка журналирования (Лога):

Чтобы включить лог mod_rewrite необходимо в описании вашего виртуального хоста (обычно это файл httpd.conf) добавить две строчки:

Код:
Код:RewriteLog /путь/к/лог/файлу
RewriteLogLevel 9

И перезапустить апача. Крайне не рекомендуется производить это на работающем сервере, так как объемы отладочной информации генерируются действительно большие и найти свое бывает очень сложно.

ps: Доп ссылки
Много полезных примеров, но на английском http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html

PHP тут не совсем к месту в названии, потому убрал /Cheery/

Комментарии