25 полезных трюков Apache ‘.htaccess’ для обеспечения безопасности и настройки веб-сайтов

Веб-сайты являются важной частью нашей жизни. Они служат средством расширения бизнеса, обмена знаниями и многим другим. Ранее ограничивались предоставлением только статического контента, с появлением динамических языков сценариев на стороне клиента и сервера и продолжающимся развитием существующих статических языков, таких как html до html5, добавление каждого элемента динамичности возможно на веб-сайтах, и то, что осталось, ожидается в ближайшем будущем.

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

25 htaccess Tricks

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

  1. Пропускная способность, потребляемая веб-сайтом.
  2. Насколько безопасен веб-сайт от хакеров.
  3. Оптимизм, когда дело доходит до поиска данных через базу данных
  4. Удобство использования при отображении навигационных меню и предоставлении дополнительных функций пользовательского интерфейса.

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

  1. Количество достигнутой сжатия данных для конкретного веб-сайта.
  2. Способность одновременно обслуживать несколько клиентов, запрашивающих один и тот же или разные веб-сайты.
  3. Защита конфиденциальных данных, вводимых на веб-сайтах, таких как: электронные письма, данные кредитных карт и так далее.
  4. Предоставление все большего количества опций для улучшения динамичности веб-сайта.

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

Что такое .htaccess?

htaccess (или hypertext access) – это файлы, которые предоставляют владельцам веб-сайтов опции для управления переменными среды сервера и другими параметрами для улучшения функциональности их веб-сайтов. Эти файлы могут находиться в любом каталоге в дереве каталогов веб-сайта и предоставлять функции для каталога, файлов и папок внутри него.

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

Примечание: Если файл .htaccess расположен в каталоге /apache/home/www/Gunjit/, то он будет предоставлять директивы для всех файлов и папок в этом каталоге. Но если этот каталог содержит другую папку, например: /Gunjit/images/, в которой также есть файл .htaccess, то директивы в этой папке будут иметь приоритет над директивами из основного файла .htaccess (или файла в папке выше в иерархии).

Сервер Apache и файлы .htaccess

Сервер Apache HTTP, в обиходе называемый Apache, был назван в честь индейского племени апачей в знак уважения к их выдающимся навыкам ведения войны. Этот сервер, созданный на языках C/C++ и XML, является кроссплатформенным и основан на сервере NCSA HTTPd. Он сыграл ключевую роль в развитии Всемирной паутины.

Сервер Apache наиболее распространен на UNIX-системах, но также доступен для широкого спектра платформ, включая FreeBSD, Linux, Windows, Mac OS, Novel Netware и других. В 2009 году Apache стал первым сервером, обслуживающим более 100 миллионов веб-сайтов.

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

Конфигурация файла htaccess на сервере Apache осуществляется следующим образом…

Конфигурация на сервере Apache

Существует два случая:

Хостинг веб-сайта на собственном сервере

В этом случае, если файлы .htaccess не включены, их можно включить, просто перейдя в файл httpd.conf (файл конфигурации по умолчанию для сервера Apache HTTP Daemon) и найдя раздел <Directories>.

<Directory "/var/www/htdocs">

Затем найдите строку, которая говорит…

AllowOverride None 

И исправьте её на.

AllowOverride All

После перезапуска Apache, файлы .htaccess будут работать.

Размещение веб-сайта на сервере другого хостинг-провайдера

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

25 приемов использования ‘.htaccess’ веб-сервера Apache для веб-сайтов

1. Как включить mod_rewrite в файле .htaccess

mod_rewrite позволяет использовать перенаправления и скрывать ваш настоящий URL, перенаправляя на другой URL. Этот параметр может оказаться очень полезным, позволяя заменить длинные URL-адреса на короткие и легко запоминаемые.

Чтобы включить mod_rewrite, просто добавьте следующую строку как первую строку в вашем файле .htaccess.

Options +FollowSymLinks

Этот параметр позволяет следовать символическим ссылкам и таким образом включить опцию mod_rewrite на веб-сайте. Замена URL на короткий и лаконичный представлена позже.

2. Как разрешить или запретить доступ к веб-сайтам

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

Разрешение доступа только для IP-адреса 192.168.3.1
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

Ключевое слово Order здесь указывает порядок обработки доступа allow, deny. Для выражения “порядок Order” операторы Allow обрабатываются первыми, а затем обрабатываются операторы deny.

Запрет доступа только для одного IP-адреса

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

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. Генерация документов об ошибках Apache для различных кодов ошибок.

Используя несколько простых строк, мы можем настроить документ об ошибке, который запускается для различных кодов ошибок, генерируемых сервером, когда пользователь/клиент запрашивает страницу, которая отсутствует на веб-сайте, как это многие из нас видели страницу “404 Страница не найдена” в своем веб-браузере. Файлы “.htaccess” указывают, какое действие предпринять в случае таких условий ошибки.

Для этого необходимо добавить следующие строки в файлы “.htaccess“:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

Ключевое слово ‘ErrorDocument‘ – это ключевое слово, код ошибки может быть любым из 401, 403, 404, 500 или любым другим допустимым кодом ошибки, и, наконец, ‘путь-документа’ представляет собой путь на локальной машине (в случае использования собственного локального сервера) или на сервере (в случае использования сервера другого человека для размещения вашего веб-сайта).

Пример:
ErrorDocument 404 /error-docs/error-404.html

Вышеприведенная строка устанавливает документ ‘error-404.html‘, размещенный в папке error-docs, для отображения в случае, если сервер сообщает о 404 ошибке при любом недопустимом запросе страницы клиентом.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

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

4. Установка/снятие переменных среды сервера Apache

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

Установка переменных среды
SetEnv OWNER “Gunjit Khera”
Снятие переменных среды
UnsetEnv OWNER

5. Определение различных типов MIME для файлов

MIME (Multipurpose Internet Multimedia Extensions) – это типы, которые браузер по умолчанию распознает при запуске любой веб-страницы. Вы можете определить типы MIME для вашего веб-сайта в файлах .htaccess, чтобы сервер мог распознавать и запускать различные типы файлов, определенные вами.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

Здесь mod_mime.c – это модуль для контроля определений различных типов MIME, и если у вас установлен этот модуль на вашей системе, вы можете использовать этот модуль для определения различных типов MIME для различных расширений, используемых на вашем веб-сайте, чтобы сервер мог их понимать.

6. Как ограничить размер загрузок и загрузок в Apache

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

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

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

Source:
https://www.tecmint.com/apache-htaccess-tricks/