Само ядро WordPress использует файлы .htaccess для перенаправления URL-адресов, чтобы сделать их удобочитаемыми, оптимизированными для SEO и удобными для пользователя. Файл находится в корневом каталоге вашего сайта. Это место, где вы впервые установили WordPress. Здесь также будет файл с именем index.php — в том же каталоге, что и файл .htaccess.
Если вы войдете в панель администратора WordPress и затем перейдете в «Настройки»> «Постоянные ссылки», вы увидите, что WordPress позволяет вам выбрать формат для создания URL-адресов для любых публикаций. URL-адрес может содержать, помимо прочего, месяц, день, категорию сообщения и название сообщения.
Выбор одного из этих параметров и нажатие на кнопку «Сохранить изменения» предложит WordPress обновить файл .htaccess с некоторыми условиями перезаписи URL. Тогда ваш файл .htaccess будет иметь некоторые правила перезаписи URL, похожие на те, что перечислены ниже.
# BEGIN WordPress # The directives (lines) between «BEGIN WordPress» and «END WordPress» are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule. /index.php [L] </IfModule> # END WordPress
Ваш собственный файл .htaccess может содержать гораздо больше правил в зависимости от плагинов, которые вы установили на своем сайте. Например, любые установленные вами плагины безопасности могут добавлять правила в файл, чтобы предотвратить доступ с определенных IP-адресов или разрешить доступ только с IP-адресов из белого списка. Плагины безопасности могут делать гораздо больше, например предотвращать спам-комментарии от ботов.
На следующем изображении показаны некоторые правила, записанные в файле .htaccess подключаемым модулем All In One WP Security.
Вы также найдете некоторые дополнительные правила, связанные с кешированием файлов разных типов. Они могут быть установлены, если вы установили какие-либо плагины оптимизации WordPress, которые обрабатывают кеширование. Вот изображение с некоторыми правилами о сроках хранения кешей разных типов файлов. Они были добавлены плагином кеширования.
Проблемы с поиском и обновлением файлов .htaccess
Файл.htacces должен работать с веб-сервером Apache. Значит, вы не найдете .htacces на других серверах, таких как Nginx. Если вы просмотрели свой корневой каталог и по-прежнему не видите файл .htaccess, посмотрите на своем веб-хосте, работаете вы на Apache или какой-либо другой технологии.
WordPress также должен иметь соответствующие разрешения для чтения и изменения файла .htaccess. Вам нужно будет изменить права доступа к файлу, чтобы WordPress мог обновлять файл, если он не работает по умолчанию.
Основные сведения о файлах .htaccess
Любые плагины безопасности и кеширования, которые вы устанавливаете на свой веб-сайт, обычно делают больше, чем просто записывают кучу строк внутри вашего файла .htaccess. Базовое понимание некоторых распространенных команд поможет вам читать и править файл .htaccess, если возникнет такая необходимость. Это также может помочь вам избежать установки каких-либо плагинов для выполнения простых задач, таких как перенаправление пользователей на защищенные страницы или со старого несуществующего URL-адреса на новый.
Всегда важно сделать резервную копию исходного файла .htaccess, прежде чем вы начнете вносить в него какие-либо изменения. Это связано с тем, что любая ошибка при изменении файла может вывести ваш сайт из строя. Наличие копии оригинала позволит вам запустить веб-сайт, просто заменив измененный файл исходной версией.
Вы можете написать свои правила, а также комментарии, чтобы давать инструкции другим или объяснять, почему вы написали эти правила. Любые комментарии в файле .htaccess должны начинаться с символа #. Мы покажем вам, как выполнить некоторые основные задачи, напрямую отредактировав файл .htaccess вместо установки плагина.
Перенаправление старых URL-адресов
Допустим, у вас есть популярный пост по старому URL-адресу, которого больше не существует. В таких случаях вы можете перенаправить людей, посещающих старый URL, на вашу новую веб-страницу.
Для этого вы можете добавить в файл .htaccessследующую строку. Не забудьте заменить пути фактическими значениями URL.
/>/> Redirect 301 /some-old-post-url/ /new-post-url/
Вы также можете перенаправить весь свой веб-сайт на новый URL-адрес, используя ту же команду. В моем случае установка WordPress находится в каталоге с именем wordpress. Итак, вы можете добавить следующую строку в свой файл .htaccess, чтобы перенаправить его в другое место.
/>/> Redirect 301 /wordpress/code.tutsplus.com/
После того, как вы добавите указанную выше строку, кто-то, посетивший / wordpress / some-post /,будет перенаправлен на code.tutsplus.com/some-post/ .
Кэширование общих типов файлов
Постоянные посетители вашего сайта будут снова и снова запрашивать одни и те же файлы CSS, JavaScript и изображений. Поэтому имеет смысл позволить им получать эти файлы из кеша вместо обычной передачи. Вы можете добавить базовые функции кэширования с помощью файла .htaccess. Вот пример кеширования этих файлов.
/>/> <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css A604800 ExpiresByType text/javascript A1296000 ExpiresByType application/javascript A1296000 ExpiresByType application/x-javascript A1296000 ExpiresByType image/jpeg A2592000 ExpiresByType image/png A2592000 </IfModule>
Число после Aустанавливает общее количество секунд, в течение которых файлы будут кэшироваться. Есть еще один способ установить период кэширования, указав период времени в виде значений, удобочитаемых человеком.
/>/> <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css «access plus 1 week» ExpiresByType text/javascript «access plus 15 days» ExpiresByType application/javascript «access plus 15 days» ExpiresByType application/x-javascript «access plus 15 days» ExpiresByType image/jpeg «access plus 1 month» ExpiresByType image/png «access plus 1 month» </IfModule>
Теперь вы должны иметь возможность указывать инструкции кэширования для типов файлов, которые не охватываются подключаемыми модулями кеширования.
Перенаправление пользователей на защищенные страницы
Другой вариант использования файла .htaccess — перенаправление пользователей со страниц HTTP на соответствующие страницы HTTPS. Для этого вы можете использовать следующие правила.
/>/> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Флаги Rule могут быть в любом порядке. R флаг сообщает серверу для отправки указанного кода ответа и L флаг сообщает серверу прекратить обработку любых более правил в наборе.