10 хитростей .htaccess, которые должен знать каждый.

С помощью конфигурационного файла .htaccess веб-мастера, использующие NCSA-совместимые веб-серверы, такие как Apache HTTP Server, могут устанавливать правила, связанные с директориями. Это позволяет веб-мастерам контролировать, какие пользователи имеют доступ к определенным файлам. Настройка автоматических перенаправлений также является типичным примером одного из многочисленных хаков .htaccess.

Что же представляет собой файл .htaccess?

.htaccess — это текстовые файлы, которые позволяют авторизованным пользователям влиять на специфические для каталога вопросы, связанные с NCSA-совместимыми веб-серверами. Эта технология была разработана в девяностых годах ведущим в то время веб-сервером NCSA HTTPD. Однако сегодня основное применение .htaccess чаще всего ассоциируется с широко распространенным HTTP-сервером Apache. Этот сервер функционирует под управлением одного или нескольких центральных конфигурационных файлов, обычно называемых «.httpd.conf». Эти центральные конфигурационные файлы обычно сохраняются в программном каталоге самого веб-сервера и определяются администратором сервера. С помощью хитростей .htaccess этот файл определяет, разрешено ли пользователю получить полномочия, позволяющие конфигурировать сервер. В случае, если такие права предоставлены, пользователь может создавать и редактировать файлы .htaccess для каждого нужного каталога. Этот доступ также позволяет пользователям с соответствующими правами перезаписывать части конфигурации на разных уровнях каталогов.

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

Как работают файлы .htaccess

Поскольку файлы .htaccess полностью состоят из текста, их можно составлять и редактировать в любом обычном текстовом редакторе. В зависимости от имеющегося доступа к веб-серверам, к созданию таких файлов можно подойти по-разному. Доступ по Telnet или SSH позволяет составлять и редактировать файлы .htaccess непосредственно на сервере. При наличии FTP-доступа файл должен быть создан и загружен локально. Как это обычно бывает с файлами, специфичными для директорий в системах Unix, этот файл также должен начинаться с точки. Такое обозначение говорит операционной системе, что файл является «скрытым», что может создать впечатление, что загруженный файл .htaccess отсутствует, если задействован графический FTP-клиент.

Вышеупомянутый пункт также может стать источником проблем при локальном создании файла .htaccess; однако это легко исправить. Чтобы редактор не включал типичное окончание файла .txt, выберите при сохранении тип файла «Все файлы». После того как файл .htaccess смонтирован с помощью соответствующей команды, его нужно просто перенести в нужный каталог. Файл сразу же становится действительным; это относится и к вложенным каталогам.

Настройка серверов с помощью хаков .htaccess

Файлы .htaccess позволяют авторизованным пользователям быстро и легко влиять на конфигурацию веб-сервера. Аутентификация HTTP позволяет защитить целые каталоги от несанкционированного доступа. С помощью этого процесса можно также настроить страницы ошибок или автоматическую передачу данных. Существует множество различных советов и рекомендаций по работе с .htaccess, и ниже мы собрали для вас 10 наиболее полезных из них:

1. Альтернативные страницы ошибок

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

#individual error reports at local storage 
locatioErrorDocument 404/directorypath/404.html

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

#individual error report external storage location
ErrorDocument 404 www.domain.tld/directorypath/404.html 

2. Переадресация

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

#single forwarding
Redirect / http://www.new-domain.tld/

С помощью этого же метода можно перенаправлять отдельные файлы внутри сайта в случае изменения его названия:

#forwarding individual documents
Redirect /old-page.html new-page.html

3. Ограниченные области

Те, кто хочет отказаться от создания обширных скриптов входа в систему с помощью PHP, но при этом нуждается в защищенном каталоге или файле на своем сервере, могут использовать трюки .htaccess для установки запрещенных областей. Этот тип защиты паролем требует наличия второго файла под названием «.htpasswd». Здесь хранятся соответствующие пароли, которые могут быть введены в Unix-системы только в зашифрованном виде. Для этого существует множество различных генераторов .htpasswd, доступных в Интернете. Защищенные каталоги можно создать, выполнив следующие команды:

# basic password protection with .htaccess
AuthType Basic
AuthName "restricted area"
AuthUserFile /<absolute path to password file>/.htpasswd
AuthPGAuthoritative Off
require user User1 User2 User3

Затем создается .htpasswd с пользователями, включая их зашифрованные пароли.

# .htpasswd file for usernames and passwords
User1:duCmo1zxkKx6Y
User2:mou3IYjSLpGWI
User3:HGKS9XzDXXAXQ

Хотя файлы .htpasswd в идеале должны быть размещены в корневом каталоге, .htaccess должен находиться в каталоге, который необходимо защитить.

4. Увеличение лимита памяти PHP

Приложения PHP ограничены определенным лимитом памяти. Этот лимит определяет максимальный объем рабочей памяти, который PHP-скрипты могут занимать в совокупности. Следующая команда в .htaccess увеличивает этот лимит по мере необходимости.

# PHP Memory Limit
php_value memory_limit 128M

Значение «128M» в данном случае означает ограничение в 128 мегабайт. В зависимости от требований к памяти и серверу могут быть установлены и другие ограничения.

5. Изменение часового пояса сервера

Если сервер работает в неправильном часовом поясе, следующая запись в .htaccess позволяет выполнить соответствующую адаптацию:

# set time zone
SetEnv TZ US America/Chicago

6. Блокировать IP-адреса

Можно запретить определенным IP-адресам или диапазонам доступ к веб-сайтам. Правильная запись может приостановить работу всех IP-адресов и предоставить доступ только определенным адресам. Это может сделать веб-сайты доступными исключительно для сотрудников, например, проприетарных интрасетей. Следующая команда представляет собой краткое описание некоторых из возможных ограничений доступа:

# File for adjusting IP ranges
Order deny,allow
Deny from .aol.com
Deny from 192.168
Allow from 192.168.220.102

Запись «Порядок» устанавливает последовательность интерпретации зарегистрированных записей; они могут быть введены в любом порядке. Последующие записи сообщают серверу, что всем пользователям с .aol.com и числовыми IP-адресами в диапазоне 192.168 запрещено пользоваться сайтом. Исключение составляет IP 192.168.220.102.

7. Перенаправление веб-присутствия с HTTP на HTTPS

Те, кто использует SSL-сертификаты для своего домена, имеют возможность перенаправить домен на зашифрованный HTTPS с помощью следующей команды:

# activate HTTPS
RewriteEngine On
RewriteCond %{Server_Port} !=443
RewriteRule ^(.*)$ http://yourdomain.tld/$1 [R=301,L]

8. Активация доступа к файлам через браузер

Следующая команда позволяет содержимому каталога отображаться в браузерах и загружаться пользователями:

# show directory content
Options +Indexes 

9. Запрет горячей ссылки на изображения

Горячая ссылка позволяет третьему лицу привязать к своему сайту медиафайлы (особенно картинки), которые сохранены на другом хосте. Это увеличивает объем данных для фактического владельца. Следующая команда позволяет пользователям запретить размещение ссылок на определенные типы файлов на своем сайте:

# prohibit hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://your-webhosting-domain/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://www.your-webhosting-domain/.*$ [NC] [OR]
RewriteRule .*.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F] 

10. Укажите charset для документов

Без правильной кодовой таблицы включение различных акцентов или других символов невозможно. Это может быть особенно неприятно для тех, кто хочет работать на языках, отличных от английского. Файл .htaccess может точно определить, какая кодировка символов должна использоваться для определенных типов документов. Эта команда позволяет кодировать все документы в UTF-8:

#specify character coding
AddDefaultCharset utf-8 

Используйте следующие команды, если необходимо кодировать только определенные документы:

#specify character coding for certain files
AddDefaultCharset utf-8 .css .htm .html .xhtml .php 

Хитрости .htaccess: практичность и простота использования

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

Оцените статью
cdelat.ru
Добавить комментарий