Преобразование гиперссылок средствами сервера 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.
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Неудача — это не единичное внезапное событие. Ваш провал не возникает внезапно. Напротив, неудача появляется, когда вы совершаете одни и те же ошибки изо дня в день. Джим Рон |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.