Гостевая
Форум
Разделы
Главная страница
Js скрипты
Php скрипты
Html шаблоны
Книги по Web дизайну
Статьи


Главная страница статей --> Хитрости при программировании php, заметки по базам данных

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

Источник: realcoding.net

Блуждая просторами Интернета вы видели множество различных гиперссылок, некоторые имели разный вид, передавая различные знаки (?, &, ;) и т.д.
Если знаков немного ссылка ещё имеет приятный вид, но некоторые ссылки не очень понятны. Вот например ссылка имеет такой вид. 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 и пишем там всего одну строку.

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

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

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

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

<?php header(http/1.0 200 Ok) ?>

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

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

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



Похожие статьи:
- SEO - сделай свой сайт видимым
- Как стать зубастым копирайтером
- Установка Apache с поддержкой SSL
- Рекламный лозунг сайта
- Технология Drag & Drop
- Анимационная Favicon
- Работа с SQLite
- Киберсквотинг и киберсквотеры
- Ода раскрутке
- Определение размера удаленного файла
- Эффект плавного перехода на JavaScript
- Комплекс Denwer: Apache+PHP+MySQL+Perl за 5 минут
- Опрос с помощью AJAX


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
[0.001]