Apache htaccess — настройка и устранение ошибок
Управление сайтом — это в большей мере умение управлять сервером и его возможностями. В данной статье речь пойдет о серверах Apache, которые являются наиболее распространенными как в Рунете, так и по всему Интернету. Вы узнаете о файле htaccess, который содержит много полезных опций для управления работы этого типа сервера.
Содержание
Почему стоит выбрать для сайта именно сервер Apache
Если вы зайдете на страницу любого хостинг-провайдера и посмотрите описание их сервера, то есть большая вероятность, что они используют Apache. Этот продукт работает со всеми известными веб-протоколами, поддерживает множество конфигураций, которые пользователь может настраивать. Кроме того, веб-сервера Apache весьма производительны и рациональны.
Известно, что Apache работает с любыми платформами и операционными системами. Но главная его особенность — это наличие большого количества настраиваемых конфигураций.
Каждый пользователь может настроить доступное ему дисковое пространство сервера Apache на свой лад. Причем настроить можно не только сервер в целом, но и отдельные каталоги в нем. Во многом в этом помогает файл конфигураций htaccess, о котором и пойдет речь в данной статье.
Зачем нужен файл htaccess
Невозможно представить управление сервером Apache без файла конфигураций htaccess. Он нужен, чтобы регулировать сервер Apache со стороны конечного пользователя. То есть вы настраиваете файл htaccess, и уже по установленным в нем конфигурациям сервер выдает определенный результат для посетителей. К примеру, вы устанавливаете в файле htaccess переадресацию, и после обращения по ссылке сервер читает информацию в конфигурационном документе, и отправляет посетителя по новому URL.
Работает файл htaccess при помощи специальных директив. Нужно знать синтаксис htaccess, чтобы уметь настраивать его конфигурации. К счастью, в Интернете по этому поводу есть множество руководств и мануалов, так что желающие легко смогут обучиться работе с htaccess на сервере Apache и подобных им.
На сервере Apache может быть размещен не один файл htaccess, а несколько. В таком случае каждый файл будет действовать на каталог, в котором он размещен, а также на все внутренние папки. Но если у вас только один файл htaccess, то следует разместить его в корневом каталоге — прямо в папке WWW. Тогда этот файл будет функционировать сразу по всему серверу. Но в том-то и преимущество Apache, что эти сервера можно настраивать очень гибко, потому со временем у вас появится множество конфигурационных файлов в различных каталогах сайта.
Все правки, которые вносите в файл htaccess, автоматически обрабатываются сервером и браузерами посетителей. В кэш этот файл не заносится, потому он всегда загружается сервером заново при обращении пользователя. Важно умело пользоваться его директивами. Учтите, что те опции Apache, в которых нет упоминания о файле htaccess, скорее всего, не подходят для этого документа.
Какие есть полезные директивы для файла htaccess
В некоторых случаях возможности файла htaccess помогут несколько улучшить работу сайту, но отдельные его опции являются жизненно необходимыми для веб-ресурса. К примеру, если вы хотите сделать версию сайта на другом языке. В таком случае вам придется решить проблему с различными кодировками, которые используют языки. Файл htaccess позволяет это сделать. Для этого используйте директивы AddType и Charset. Они позволят вам задавать кодировки, по которым будет работать сервер. Для указания кодировки по умолчанию используйте директиву AddDefaultCharset.
Конфигурационный файл htaccess работает во многих сферах функционирования ресурса. Вы не только сможете изменить кодировки сайта, но и защитить отдельные его части при помощи пароля. Чтобы это осуществить, нужно указать команду «basic» в директиве AuthType. Строчкой ниже следует прописать директиву AuthName, в которой в скобках вы укажите обращение к пользователю, который будет проходить авторизацию. Все пароли будут храниться в специальном файле .htpasswd. Вам нужно будет заранее прописать в нем пользователей и пароли для них. А в htaccess через директиву AuthUserFile укажите путь к файлу с паролями. В последней строчке для активации авторизации по паролю нужно прописать следующее: require valid-user, что означает требования для пользователей пройти аутентификацию, прежде чем войти в папку или получить доступ к файлу.
Порой конфигурационный файл htaccess необходим для того, чтобы поменять порядок работы сервера. К примеру, вы можете изменить состав отправляемых в браузер HTTP-заголовков, добавив туда файлы, и таким образом активировав кэширование. С другой стороны, вы можете изменить индексный файл для разных каталогов. После того, как пользователь заходит на определенную страницу, если он не обращается к какому-либо файлу, то открывайте индексный документ. Вы можете создать свой индексный документ. Тогда в папке с созданным индексным документом вам нужно будет поместить файл htaccess, в котором вы пропишите директиву DirectoryIndex и имя нового основного файла для папки.
Возможно, вам также понадобится листинг папок. Это когда вы открываете определенные каталоги сервера для того, чтобы пользователи могли просматривать папки внутри них и скачивать их по мере необходимости. То есть вы сможете включить листинг, и сделать у себя на сайте подобие сервера. Для этого нужно будет настроить отдельный каталог, поместив в него файл htaccess. В этом файле нужно указать строку Options +Indexes. Она нужна чтобы включить листинг, а если потом захотите его отключить, то напишите Options -Indexes.
Одна из самых важных функций файла htaccess — это указание новых страниц с ошибками для сайта. Вы наверняка сталкивались с тем, что не все пользователи попадают к вам на сайт. Некоторые переходят по неправильным ссылкам, и в итоге попадают на страницы с ошибками. А поскольку стандартные страницы с ошибками выглядят не особо опрятно, почти все покидают такие страницы, как и сам сайт. Потому вам нужно залатать эти дыры, и создать собственные html-страницы для различных типов ошибок. А затем в главном файле для каждой страницы укажите расположение при помощи директивы ErrorDocument.
Помимо того, что вы можете запаролить некоторые файлы и каталоги, вы также можете полностью закрыть для них доступ. Для этого стоит использовать теги и между ними прописать директивы Order allow,deny и Deny from all. При помощи этих опций вы сумеете запретить доступ и для всего сайта. А если комбинировать директивы Allow и Deny, то можно прописать исключения. К примеру, запретить доступ для всех, кроме указанных IP-адресов.
Почему файл конфигураций htaccess для серверов Apache не работает
Порой случается такое, что куда бы вы не поместили созданный файл с настройками, каталоги с htaccess перестают работать на сайте. В таком случае на ресурсе появляется ошибка 500, которая сообщает либо о проблемах с сервером, либо о неполадках внутри файла конфигураций.
Обычно, эта ошибка связана с тем, что в конфигурациях сервера Apache ничего не сказано о htaccess. Хоть этот файл и используют повсеместно, не все хостинг-провайдеры подготавливают условия для того, чтобы вы могли им спокойно пользоваться. Тогда вам нужно самостоятельно настроить его. Для этого отыщите на сервере файл главных конфигураций Apache, который называется httpd.conf. В нем вам нужно отыскать тег . Внутри этого тега будет прописан путь к определенному каталогу, а также права для него. Вам нужно для каждого созданного файла htaccess прописывать новые теги .
Конфигурационный документ htaccess не запускается из-за того, что по умолчанию на сервере может быть прописан запрет на выполнение директив внутри него. За это отвечает опция AllowOverride. Если возле нее написано None, то конфигурационный файл не сможет заработать в каталоге. Вам нужно прописать All. Кроме того, вам нужно поставить открытые права на каталог с htaccess: Allow from all. Уже после этого, когда сохраните изменения в конфигурациях, htaccess должен заработать.
Если по каким-то причинам вы изменили уровень доступа к каталогу, и указали параметр All, но изменения не вступили в силу, и выскакивает ошибка 500, значит вы сделали что-то не так внутри htaccess. Придется проверять это вручную. Для этого закомментируйте все строчки. Чтобы это сделать, поставьте решетку «#» слева от каждой строки, без пробелов. Потом постепенно ставьте пробел меду решеткой каждой строки (то есть директивы), и смотрите на реакцию сайта. Если после того, как вы поставите пробел возле какой-то строки, вновь появится ошибка, значит данную директиву вы неправильно оформили. Синтаксис htaccess не прост, потому вам понадобится время, чтобы освоиться и научиться писать директивы без ошибок.