Apache HTTP-сервер (назван именем группы племён североамериканских индейцев апачей; кроме того, является сокращением от англ. a patchy server; среди русских пользователей общепринято искажённое апач) — свободный веб-сервер.

HTTP- сервер или веб-сервер – это программа, которая понимает, что нужно клиенту и выдает ему ответы в виде HTML страниц, на которых может содержаться различная информация: изображения, тексты, скрипты, файлы, медиа данные (видео и аудио) и многое другое. HTTP сервер принимает HTTP запрос от клиента (клиентом может быть браузер, мобильный телефон, телевизор или электрочайник, если у него есть функция выхода в интернет) и дает ему HTTP ответ. В нагрузку к HTTP ответу не обязательно должен идти ответ в виде HTML страницы, данные могут быть и другими.

Apache поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.

К ним относятся:

PHP (mod_php).
Python (mod python, mod wsgi).
Ruby (apache-ruby).
Perl (mod perl).
ASP (apache-asp)[9].
Tcl (rivet[10])
Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:
- Конфигурация сервера (httpd.conf).
- Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).
- Конфигурация уровня директории (.htaccess).

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

.htaccess (от англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.

.htaccess является подобием httpd.conf с той разницей, что действует только на каталог, в котором располагается, и на его дочерние каталоги. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf (директива AllowOverride).

Файл .htaccess может быть размещён в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Для того чтобы эти файлы .htaccess можно было использовать, необходимы соответствующие настройки главного конфигурационного файла (значение директивы AllowOverride должно быть установлено All). Как правило, подавляющее большинство хостеров разрешают использовать свои файлы .htaccess.

Пути к файлам и каталогам должны указываться от корня сервера, например, /var/www/domain.com/htdocs/

Синтаксис файла конфигурации .htaccess

Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера:

  • пути к файлам (директориям) указываются от корня сервера. Пример: /home/www/htdocs/config/.htpasswords;
  • домены с обязательным указанием протокола. Пример: Redirect / http://www.site.com;
  • файл имеет название именно "точка" htaccess;
  • кодировка файла в UNIX-формате.



В файле .htaccess Можно использовать любые печатные символы и пробел, но часть символов имеет особое значение:

  • Круглые скобки () используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.
  • Символ ^ обозначает начало строки.
  • Символ $ обозначает конец строки.
  • Символ . обозначает любой символ.
  • Символ | обозначает альтернативу. Например, выражения "A|B" означают "A или B".
  • Символ ? ставится после символа (группы), который может как присутствовать, так и отсутствовать.
  • Символ * ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.
  • Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.
  • Квадратные скобки [] используются для перечисления допустимых символов.
  • Квадратные скобки [^] используются для перечисления недоступных символов.
  • Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде.
  • Все, что расположено после символа '#', считается комментарием.


Вот хорошая статья про настройку файла .htaccess https://habrahabr.ru/post/154643/




  • Файл .htaccess (562)

    Apache HTTP-сервер (назван именем группы племён североамериканских индейцев апачей; кроме того, является сокращением от англ. a patchy server; среди русских пользователей общепринято искажённое апач) — свободный веб-сервер. HTTP- сервер или веб-сервер – это программа, которая понимает, что нужно...

  • Защита папки на сервере (288)

    Сервер Apache с помощью настроек (файл .htaccess) позволяет защитить папку от свободного доступа - только через логин и пароль. Зачем это надо:- защитить папки с важными данными от индексации роботами (несмотря на инструкции в robots.txt - поисковые машины индексируют всё, до чего дотянутся)- защитить от...

  • 301 Redirect (208)

    Посмотрим варианты редиректа 301 через файл .htaccess (в корне сайта, включенный модуль mod_rewrite ). Данные варианты будут корректно работать только для простых сайтов на html (т.е. корректно будет редирект для всех страниц сайта), для сайтов на базе CMS надо смотреть документацию (в противном случае...

  • Защита от прямого копирования картинок (155)

    В основном для снижения нагрузки на сервер.Как обычно выглядит ситуация - кто-то зашел на Ваш сайт, ему понравилась статья, далее "copy-paste" и утащил себе на сайт. Как бы не особо жалко, интернет - он свободный. Но - помимо текста были скопированы картинки, у которых адрес (который URL) остался...