Меню
- Главная
- Скрипты
- Шаблоны сайта
- Книги
- Фон для сайта
- Анимированные картинки
- Лохотроны и кидалово в интернете
- Статьи
Партнерские программы:
- Заработок на соцсетях
- разные


Реклама




Информация
Обо всех новых добавлениях на сайт вы можете узнать подписавшись в
_________
Яндекс.Метрика


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

Преобразование гиперссылок средствами сервера 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 и пишем там всего одну строку.


<?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.

Назад
Автор: нет данных
Источник: art.webobzor.net