Разбираем открытый код WordPress. Инициализация системы

ustanovka-wp

Когда нам надо попасть на сайт мы используем адресную строку. В ней вводим адрес сайта, жмём клавишу “Enter’. А можно просто кликнуть на ссылку. В обоих случаях будет отправлен запрос серверу. Как только наш запрос добрался до сервера, тот обращается к файлу .htaccess. Этот файл содержит целый ряд инструкций, которые указывают что делать серверу, как это делать и куда послать полученный запрос.

В рассматриваемой версии WordPress файл .htaccess содержит следующее:

Разбираем открытый код WordPress. Инициализация системы
файл .htaccess

Первым делом сервер проверит наличие модуля “mod_rewrite“. “mod_rewrite” – это модуль сервера Apache для манипуляции с URL адресами. Если он имеется, тогда сервер его включает с помощью директивы “RewriteEngine“.

Директива “RewriteBase” обрезает полный путь (от корня сервера) до корня сайта. Так как я установил WordPress на локальный сервер, то полный путь к этой CMS будет следующим: “E:/1SERVER1/OSPanel/domains/localhost/wp/“. Сам сервер расположен в папке “E:/1SERVER1/“. Корень сайта находится по адресу “E:/1SERVER1/OSPanel/domains/localhost/“. “/wp/” – это путь к подкаталогу (своеобразный поддомен). Поэтому в директиве “RewriteBase” указан подкаталог “wp”. Если бы CMS была установлена в корне сайта, а не в подкаталоге, то в директиве “RewriteBase” было бы указано “/”.

Далее следует директива “RewriteRule“. Эта директива преобразует URL адрес запроса пользователя по порядку в соответствии с регулярным выражением.

Синтаксис директивы RewriteRule:

RewriteRule  Шаблон  Подстановка  [Флаги]

RewriteRule ^index\.php$ – [L]

^ – это маркер начала адресной строки

$ – это маркер конца адресной строки

Между этими маркерами находится строка “index\.php “. По всё, что находится между этими маркерами, является шаблоном, выполнение которого запускает исполнение правила. Согласно синтаксису после шаблона должна следовать подстановка, а потом флаг. Но в нашем случае подстановка опускается. Вместо подстановки используется “-“, что означает запрет на реализацию подстановки.

Флаг L (last) – останавливает процесс преобразования, и текущая ссылка считается окончательной. Таким образом строка “RewriteRule ^index\.php$ – [L]” говорит следующее: “Если в строке запроса есть index.php, то никаких преобразований не производим”.

Далее сервер обращается к двум условиям:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

В первую очередь сервер выясняет находится ли по запрашиваемому адресу какой-либо файл. Если нет, то он переходит к следующему условию. Далее выясняется находится ли по запрашиваемому адресу директория (папка). Если нет, то переходим к следующей строке:

RewriteRule . /wp/index.php [L]

В данном правиле “.” означает любой одиночный символ. Если после доменного имени ввести любой одиночный символ, то сервер автоматически запустит файл “index.php”, который в нашем случае находится в подкаталоге “/wp/”.

Как только сервер пролистал весь файл .htaccess и выполнил все инструкции, что там указаны, он переадресует запрос файлу “index.php”.

Если вы хотите узнать правильно ли составлен .htaccess файл вашего сайта, то воспользуйтесь сервисом madewithlove.be.

You may also like...

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Sign up
Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.