Преобразование гиперссылок средствами сервера Apache

Блуждая просторами Интернета вы видели множество различных гиперссылок, некоторые имели разный вид, передавая различные знаки (?, &, ;) и т.д.
Если знаков немного ссылка ещё имеет приятный вид, но некоторые ссылки не очень понятны. Вот например ссылка имеет такой вид. http://www.webobzor.net/index.php?mod=stat

Нет ничего сложного, но адрес может выглядеть и так http://www.webobzor.net/stat Так лучше? Так можно передавать не один параметр.

Возможно вы встречали подобные ссылки на некоторых сайтах, наверно вы подумали что скрипт для каждого файла создаёт отдельную папку. Да, это вариант, но неправильный. Совсем не обязательно так поступать.

И так как же это сделать, не создавая отдельных каталогов, ответ совсем прост, разработчики нашего любимого сервера Apache придумали модуль mod_rewrite, который нам и поможет в этом вопросе.

Модуль mod_rewrite


mod_rewrite – это специальный модуль для серверов Apache, который был специально сделан для создания сайтов с ЧПУ. Он был написан в апреле 1996 года и эксклюзивно подарен The Apache Group в июле 1997.

Модуль представляет собой библиотеку расширения для серверов типа Apache. Находится в папке modules, в корневой папке апача и называется обычно mod_rewrite.so (устанавливается отдельно). С помощью mod_rewrite можно всего парой строк в .htaccess сделать понятный для человека url.

Подключение модуля mod_rewrite


Зайдите в каталог в котором установлен ваш Web – сервер Apache, откройте папку modules, и убедитесь что в ней присутствует файл mod_rewrite.so.

Файл у нас есть теперь перейдите в каталог conf и откройте файл httpd.conf, вам необходимо убедиться что данный модуль подключён, для этого найдите такую строку

LoadModule rewrite_module modules/mod_rewrite.so


Нашли? Нет, тогда добавьте эту строку.

Сохраняйте изменения в файле httpd.conf и перезагрузите сервер.

Преобразуем гиперссылку


В каталоге, где у вас выполняются PHP скрипты, создайте файл .htaccess. Запишите в файл .htaccess такие строки:

RewriteEngine On
RewriteBase /test
RewriteRule index.php.* - [L]
RewriteRule ^(.*) index.php?id=$1


В строке RewriteEngine On - мы сообщаем серверу что хотим использовать средства модуля Rewrite.

Строка RewriteBase /test – Указывает серверу где искать файл index.php (или какой у вас по умолчанию), если вы в этой строке укажите неправильный путь, то сервер будет загружать файл с указанной папки, а не стой что нужна вам.

RewriteRule ^(.*) index.php?id=$1 – В этой строке указываем имя файла, и что необходимо трансформировать.

Теперь создаём файл index.php и пишем там всего одну строку.

 include ($id.".php") ?>


Думаю с этим всё понятно, гиперссылка, для открытия файла должна иметь такой вид http://localhost/test/page. Естественно, файл page.php уже должен быть создан, и находиться в каталоге test.

Вот как бы и всё, но не тут то было, браузер ни в какую не хочет нам показывать такой необходимый для нас файл 1.php, вместо этого мы видим страницу с ошибкой 404.

В чём же дело? Для того что бы браузер понял что ему прислал сервер необходимо в файл index.php в самый верх добавить такую запись.

 header("http/1.0 200 Ok") ?>


Эта строка говорит браузеру: всё ОК, страница успешно загружена. Полную информацию по ошибкам и ответам сервера, читайте эту статью Коды ответов HTTP сервера

Будьте внимательны, вам необходимо строку header("http/1.0 200 Ok") поместить перед отправкой заголовков, т.е. в самом верху, иначе будет ошибка.

Единственным недостатком этого метода является то что, на вашем сайте может не использоваться модуль Rewrite и тогда вы будете видеть страницу с ошибкой 500.

Читать комменты и комментировать

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



Защитный код
Обновить

Преобразование гиперссылок средствами сервера Apache | | 2011-02-14 01:27:53 | | Справочник по web | | Блуждая просторами Интернета вы видели множество различных гиперссылок, некоторые имели разный вид, передавая различные знаки (?, &, ;) и т.д.Если знаков немного ссылка ещё имеет приятный вид, но | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: