Всем привет, вновь мы продолжаем работать с файлом htaccess. Сегодня я вас научу, как сделать так чтобы все запросы на сайт обрабатывались через файл index.php. Это нужно для того чтобы мы смогли подключить к файлу index.php нужные скрипты, а они запускались при открытие любого файла в любой директории.
Одним из примеров полезности данного метода, является подключение к базе данных. Если раньше вам необходимо было при любом запросе к базе данных прописывать специальный код, то теперь вы сможете просто прописать функцию в файле index.php и только вызывать ее в тех случаях где она нужна.
Так же в файле index.php можно прописать проверку на авторизованность пользователя. Эту проверку нужно прописать один раз в файле index.php и она будет срабатывать всегда, при открытие любого файла.
Как же сделать перенаправление всех запросов на index?
Для того чтобы это сделать, мы в корневой папке сайта создаем файл .htaccess. Данный файл необходимо открыть как обычный текстовик или с помощью программы для написания кода. Я открываю этот файл через программу Sublime Text.
ВНИМАНИЕ
Для файла .htaccess следует использовать права доступа 644 и загружать его в ASCII-режиме. Если ваш .htaccess файл не работает, то вам следует обратиться к системному администратору или в техподдержку вашего веб-хостинга и убедиться, что использование его разрешено для вашей учетной записи, так как некоторые хостинговые компании не позволяют его использование без предварительного разрешения, это в основном относится к бесплатным хостингам. Также, к сожалению, .htaccess не будет работать на Windows-серверах.
В файл htaccess вписываем следующий код.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php
Первая строка кода разрешает внесение изменений в работу сервера.
Вторая и третья строка кода добавляет условие при котором происходит проверка:
- RewriteCond %{REQUEST_FILENAME} !-f — проверка наличия файла с таким названием
- RewriteCond %{REQUEST_FILENAME} !-d — проверка наличие директории с таким названием
Если название файла на который идет запрос указанно верно и такой файл существует, то происходит перенаправление запроса на файл index.php.
Для чего это нужно?
Если вам до сих пор не понятна работа и необходимость данного кода, тогда давайте разберем небольшой пример.
Допустим у вас в файле index.php вписан код, который должен срабатывать на каждой странице вашего сайта. Например указание кодировки страниц и вывод окна с какой нибудь рекламой.
Когда пользователь вписывает в адресную строку путь к файла вашего сайта, например mysite/account/login.php, то файл htaccess запускает код. В этом коде он проверяет, существует ли такой файл и если да, то вместе с кодом файла login.php, он запускает код файла index.php.
Если вы не будете использовать данный метод, то вам придется в каждом файле вашего сайта прописывать один и тот же код, открывающий окна с рекламой. И если в дальнейшем вы захотите убрать это окно или отредактировать скрипт окна, вам придется это делать на каждой странице, на которой используется данный скрипт.
На самом деле вы можете указать здесь любой файл, но программисты чаще всего для этого используют файл index.php.