Поиск по сайту:

Как использовать файл .htaccess


Введение

Файл .htaccess используется для веб-сервера Apache как способ настройки деталей вашего веб-сайта без изменения файлов конфигурации сервера. Этот файл начинается с точки, указывающей на то, что он скрыт в папке. Файл .htaccess можно использовать для загрузки настраиваемых страниц ошибок (например, страниц с ошибкой 404), создания перенаправлений URL-адресов, реализации защищенной паролем аутентификации для определенных каталогов на вашем сервере и т. д.

В этом руководстве вы узнаете, как включать, создавать и использовать файл .htaccess, а также некоторые распространенные способы его использования и влияние на скорость и безопасность.

Предпосылки

Если вы хотите попрактиковаться в использовании файла .htaccess, следуя примерам из этого руководства, вам потребуется:

  • Один сервер Ubuntu 20.04, настроенный пользователем без полномочий root с привилегиями sudo и включенным брандмауэром. Вы можете сделать это, следуя руководству по начальной настройке сервера Ubuntu 20.04.
  • Веб-сервер Apache, установленный на вашем сервере Ubuntu. Узнайте, как настроить его, из нашего руководства по файлу виртуального хоста для вашего домена. В этом руководстве в качестве примера будет использоваться your_domain и /etc/apache2/sites-available/your_domain.conf для файла виртуального хоста.
  • Если вы хотите попрактиковаться с доменом (необязательно), вы можете настроить его, купив доменное имя при введении в DNS DigitalOcean, чтобы узнать, как их добавить.
  • Если вы также хотите защитить свой виртуальный хост, вы можете сделать это с помощью бесплатного доверенного сертификата, например, в нашем руководстве по самозаверяющему SSL для Apache, чтобы настроить это.

Завершив настройку, вы можете попрактиковаться в включении и создании файла .htaccess на следующих шагах.

Включение файла .htaccess

Если у вас есть доступ к настройкам сервера, вы можете отредактировать конфигурацию Apache, чтобы разрешить файлу .htaccess переопределять стандартные конфигурации веб-сайта.

Начните с открытия файла виртуального хоста apache2/sites-available/your_domain.conf в предпочитаемом вами текстовом редакторе. Здесь мы будем использовать nano:

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

Предполагая, что вы выполнили шаг 5 обязательного руководства по установке Apache, этот файл будет содержать следующее содержимое:

    
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Добавьте следующий блок содержимого Directory в блок VirtualHost:


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


<Directory /var/www/your_domain>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory> 
</VirtualHost>

Наиболее важной строкой этого блока содержимого Directory является AllowOverride All, которая разрешает использование файлов .htaccess. После добавления этой информации сохраните и закройте файл. Если вы используете nano, вы можете сделать это, нажав CTRL + X, затем Y и ENTER.

Затем перезапустите Apache:

  1. sudo service apache2 restart

Теперь, когда ваши настройки конфигурации были обновлены, чтобы разрешить использование файлов .htaccess, на следующем шаге вы создадите их.

Создание файла .htaccess

Чтобы создать файл .htaccess в своем терминале, вам нужно перейти в корневой веб-каталог. Ваш корневой веб-каталог — это место, где нужно поместить файл .htaccess, чтобы ваши настройки могли быть правильно выполнены для вашего веб-сайта. Правильное размещение файла .htaccess важно, поскольку конфигурации в этом файле влияют на все в его каталоге и каталогах после него. Это означает, что если вы обслуживаете несколько разных веб-сайтов на одном и том же сервере Apache, ваш файл .htaccess должен быть помещен в корневой веб-каталог, относящийся к этому конкретному веб-сайту.

Если вы выполнили предварительные требования, ваш корневой веб-каталог будет находиться в следующем месте: /var/www/ваш_домен/.htaccess. Чтобы создать .htaccess для вашего веб-сайта выполните следующую команду:

  1. sudo nano /var/www/your_domain/.htaccess

Теперь, когда вы узнали несколько способов создания файла .htaccess, далее мы рассмотрим некоторые распространенные варианты использования страницы .htaccess.

Распространенное использование страницы .htaccess

Страница .htaccess используется пятью способами:

Mod_Rewrite

Одним из самых полезных аспектов файла .htaccess является mod_rewrite. Вы можете использовать файл .htaccess, чтобы указать и изменить способ отображения URL-адресов и веб-страниц на ваших сайтах пользователям. Узнайте больше о том, как это сделать, из нашего руководства «Как настроить mod_rewrite».

Аутентификация

Чтобы настроить аутентификацию безопасности с помощью .htaccess, вы можете создать файл паролей с именем .htpasswd для аутентификации пользователей. Внесение этого изменения создаст портал паролей, который предложит посетителям сайта ввести пароль, если они хотят получить доступ к определенным разделам веб-страницы. При создании этого файла обязательно сохраните его где-нибудь, кроме веб-каталога, из соображений безопасности.

Чтобы создать файл, запустите команду htpasswd и включите параметр -c и имя пользователя для создания указанного файла htpasswd. Как только это произойдет, вам будет предложено ввести пароль. Вы можете вставить в файл htpasswd столько строк, сколько необходимо, но убедитесь, что каждый пользователь получает свою собственную соответствующую строку. В следующем примере показано, как создать новую запись в файле, в данном случае для пользователя sammy:

  1. sudo htpasswd -c /etc/apache2/.htpasswd sammy

Вы можете проверить содержимое этого файла, запустив cat /etc/apache2/.htpasswd, и он выведет имя пользователя и зашифрованный пароль для каждой добавленной вами записи.

После того, как вы добавили нужных пользователей, откройте файл .htaccess. Если вы следовали руководству по предварительным требованиям, это будет расположено в следующем месте:

  1. sudo nano /var/www/your_domain/.htaccess

Имейте в виду, что в этом примере мы ограничиваем весь корень документа на основе /var/www/your_domain, но его можно поместить в любой каталог, в который вы хотите. ограничить доступ.

Когда этот файл открыт, добавьте следующее содержимое и сохраните изменения, чтобы начать использовать функцию пароля:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Чтобы узнать больше, прочитайте наш учебник «Как настроить аутентификацию по паролю с помощью Apache».

Пользовательские страницы ошибок

Файл .htaccess дополнительно позволяет создавать собственные страницы ошибок для вашего сайта. Некоторые из наиболее распространенных ошибок:

  • 400 Неверный запрос
  • 401 Требуется авторизация
  • 403 Запрещенная страница
  • Файл ошибки 404 не найден
  • Внутренняя ошибка 500

Чтобы сделать страницу удобной для пользователя и предоставить посетителю сайта больше информации, чем предлагает страница ошибок сервера по умолчанию, вы можете использовать файл .htaccess для создания пользовательских страниц ошибок. Узнайте больше в нашем руководстве о том, как настроить Apache для использования пользовательских страниц ошибок.

MIME-типы

В тех случаях, когда на вашем сайте есть некоторые файлы приложений, для доставки которых ваш сервер не настроен, вы можете добавить типы многоцелевых расширений почты Интернета (MIME) на свой сервер Apache в файле .htaccess с помощью следующего кода. :

AddType audio/mp4a-latm .m4a

Обязательно замените приложение и расширение файла на тип MIME, который вы хотите поддерживать. Для этого примера мы указали тип MIME аудиофайла.

SSI

Включения на стороне сервера (SSI) значительно экономят время на веб-сайте. Одним из наиболее распространенных применений SSI является обновление большого количества страниц некоторыми специфическими данными без необходимости обновления каждой страницы по отдельности. Например, если вы хотите изменить цитату внизу страницы.

Чтобы включить SSI, вставьте следующий код в файл .htaccess:

AddType text/html .shtml
AddHandler server-parsed .shtml</pre>

Эти строки сообщают .htaccess, что файлы .shtml допустимы, а вторая строка специально заставляет сервер анализировать все файлы, оканчивающиеся на .shtml, для любые SSI-команды.

Однако, если у вас есть много страниц .html, которые вы не хотите переименовывать с расширениями .shtml, вы можете использовать другую тактику для их разбора на наличие команд SSI, XBitHack.

Вы можете использовать эту тактику XBitHack, добавив следующую строку в файл .htaccess, чтобы заставить Apache проверять все файлы .html с соответствующими разрешениями. для ССИ:

XBitHack on

Чтобы сделать страницу доступной для XBitHack, используйте команду chmod для изменения разрешений:

  1. chmod +x pagename.html

Теперь, когда вы понимаете несколько распространенных способов использования страницы .htaccess, вы узнаете больше о влиянии файла .htaccess на скорость и безопасность.

Скорость и безопасность с файлами .htaccess

Несмотря на то, что файл .htaccess можно использовать для улучшения сайта, следует помнить о двух вещах, на которые он может повлиять: скорость и безопасность.

Что касается скорости, файл .htaccess может замедлить работу вашего сервера, но для большинства серверов это, вероятно, будет незаметным изменением. Это может быть связано с расположением страницы, поскольку файл .htaccess влияет на страницы в своем каталоге и на все каталоги после него. Это означает, что каждый раз, когда загружается страница, сервер сканирует ее каталог и все предшествующие ему каталоги, пока не достигнет верхнего каталога или файла .htaccess. Этот процесс будет выполняться до тех пор, пока директива AllowOverride разрешает использование файлов .htaccess, как было продемонстрировано на этапе включения файла .htaccess; существуют ли на самом деле файлы .htaccess.

В целях безопасности файл .htaccess гораздо более доступен, чем стандартная конфигурация Apache, и изменения вступают в силу мгновенно (без необходимости перезапуска сервера). Это дает пользователям право вносить изменения в файл .htaccess, что дает им большой контроль над самим сервером. Любая директива, размещенная в файле .htaccess, имеет тот же эффект, что и в самой конфигурации Apache. Также важно отметить, что Apache обычно не рекомендует использовать .htaccess, если пользователь может получить доступ к файлам конфигурации Apache самостоятельно.

Заключение

Файл .htaccess обеспечивает большую гибкость при создании сайта. Чтобы узнать больше о защите вашего сайта, прочитайте наше руководство по важным файлам и каталогам Apache.