Что это filesmatch html
Перейти к содержимому

Что это filesmatch html

  • автор:

Помогите настроить кэш браузера

Помогите настроить кэш браузера на Вордпресс чтобы указать в заголовках HTTP дату или срок действия изображений.
Прочитал много статей на эту тему, установливал плагины и экспериментировал сними, а также добавлял и изменял .htaccess, но так ничего и не получилось.
Сейчас добавил такую запись и всё равно сервис developers. google. com выдаёт, что не указан срок действия изображений.


ExpiresActive OnExpiresDefault «access 7 days»
ExpiresByType application/javascript «access plus 1 year»
ExpiresByType text/javascript «access plus 1 year»
ExpiresByType text/css «access plus 1 year»
ExpiresByType text/html «access plus 7 day»
ExpiresByType text/x-javascript «access 1 year»
ExpiresByType image/gif «access plus 1 year»
ExpiresByType image/jpeg «access plus 1 year»
ExpiresByType image/png «access plus 1 year»
ExpiresByType image/jpg «access plus 1 year»
ExpiresByType image/x-icon «access 1 year»
ExpiresByType application/x-shockwave-flash «access 1 year»

# 30 днейHeader set Cache-Control «max-age=2592000, public»# 30 днейHeader set Cache-Control «max-age=2592000, public»# 2 дняHeader set Cache-Control «max-age=172800, public, must-revalidate»# 1 деньHeader set Cache-Control «max-age=172800, private, must-revalidate»

Настройка htaccess FilesMatch / Allow Deny

Похоже не понимаю сути работы этой системы. Если запрашиваемый файл есть на диске в папке — никакие запреты Allow/Deny через FilesMatch или RewriteRule не срабатывают. (Если нет — тогда да). Такая ерунда на нескольких серверах, везде Debian 5, ISP manager Так и должно быть?

Это счастливая рефка: <жать сюда>(http://bit.ly/WbMR4O) тому, кто по ней разместит больше всего статей, будет сопутствовать счастье всю его оставшуюся, длинную, обеспеченную жизнь.

На сайте с 16.09.2009
17 апреля 2012, 10:16
nocomments:
Похоже не понимаю сути работы этой системы.

nocomments:
Если запрашиваемый файл есть на диске в папке — никакие запреты Allow/Deny через FilesMatch или RewriteRule не срабатывают.

Срабатывают. Но телепаты в отпуске, и что вы делаете не так — простые смертные не понимают.
Абонементное сопровождение серверов (Debian) Отправить личное сообщение ( ), написать письмо ( ).
На сайте с 19.02.2005
17 апреля 2012, 10:30
Приведите правила и логи
Не стоит плодить сущности без необходимости
На сайте с 12.11.2009
17 апреля 2012, 10:40

пардон, слишком в общем отписал, уточню на примерах: допустим в htaccess написано: RewriteCond % Yandex*
RewriteRule \.(jpg)$ — [F] заходим с юзерагентом яндекса, site.ru/image.jpg — файл есть на диске: получаем картинку — файла нет на диске: получаем 403 Forbidden Изначально хотелось чтобы в обоих случаях было 403 Точно такая же ситуация если так:
RewriteCond % Yandex*
RewriteRule (.*) — [F]
И даже если так:
Order Allow,Deny
Deny from all
Проделываем то же самое на виртуальном хостинге с сипанелью — оба варианта 403

На сайте с 16.09.2009
17 апреля 2012, 10:57

nocomments:

допустим в htaccess написано:

RewriteCond % Yandex*
RewriteRule \.(jpg)$ — [F]

заходим с юзерагентом яндекса, site.ru/image.jpg

— файл есть на диске: получаем картинку
— файла нет на диске: получаем 403 Forbidden

Изначально хотелось чтобы в обоих случаях было 403

Хотите дальше. Либо читайте документацию, никаких сюрпризов не будет. С чего вы вообще взяли, что этот кусок правил работает? Yandex* — не регулярное выражение (CondPattern is usually a perl compatible regular expression). Правильнее: Yandex.* И учитывайте, по-умолчанию тест чувствителен к регистру.

nocomments:

Order Allow,Deny
Deny from all

Должно работать. Проблемой, скорее всего, являются другие правила — реврайты какие-либо и т.п.
На сайте с 02.04.2009
17 апреля 2012, 11:08
Запросы статики до апача доходят? Так сначала попробуйте RewriteEngine On RewriteRule \.(jpg)$ — [F]
На сайте с 16.09.2009
17 апреля 2012, 11:18
siv1987:
Запросы статики до апача доходят?

Кстати, да. nginx-то в ISP выключен? Иначе статику будет отдавать nginx, а апач она минует. Скажите спасибо разработчикам ISP за проблему из ничего.

На сайте с 12.11.2009
17 апреля 2012, 11:24
myhand:
С чего вы вообще взяли, что этот кусок правил работает? Yandex*

Сделал такой вывод, потому что он совершенно корректно работает на виртуальных хостингах и потому что на тестируемом выдаёт 403 в случае, если файла нет на диске. (А не 404, если это правило убрать или если выключить подмену юзерагента).

myhand:
Проблемой, скорее всего, являются другие правила — реврайты какие-либо и т.п.
Не, нету больше ничего, только включение реврайтенжин.

siv1987:
Запросы статики до апача доходят?
Так сначала попробуйте
RewriteEngine On
RewriteRule \.(jpg)$ — [F]

Попробовал, оставил только RewriteRule \.(jpg)$ — [F] Результат тот же — если файл есть на диске его видно. Выглядит так, что если файл присутствует — апач вообще не лезет htaccess, все правила работают только для ситуаций когда файла физически нет. Но это только на данной конфигурации (Debian5+ISPManager), в остальных случаях всё обрабатывается корректно. Похоже где-то есть какая-то соответствующая настройка.

Описание синтаксиса и примеры работы с .htaccess

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

Вы можете создавать несколько файлов .htaccess — по одному для каждой директории на вашем сайте.

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

Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех директорий, где находится другой файл .htaccess (и кроме всех папок «ниже» этой папки со вторым .htaccess).

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

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

Правила написания .htaccess

пути к файлам (директориям) указываются от корня сервера.

DirectoryIndex /home/st1331/www/data/main.html
DirectoryIndex /www/news/main.html

Адресация к документам, расположенным на других сайтах должно выполняться с указанием протокола

Redirect /oldsite/ http://www.starsite.ru/
Redirect /oldsite/ www.starsite.ru/

Комментарии — строки, начинающиеся с символа #.

В выражениях можно использовать переменные окружения, например % или %.

Файл .htaccess должен быть записан в UNIX-формате — это означает что перевод строки должен задаваться в нем одним символом (0x0A), а не двумя (0x0D 0x0A), как в DOS или Windows

Определение области действия директив

Директива Files

Оописание: дирктива Files ограничивает действие директив одним файлом
Syntax: .
filename имя файла
Пример:

 Order Deny,Allow Deny from all Allow from 192.168.1.1  
Директива FilesMatch

Оописание: дирктива Files ограничивает действие директив одним файлом
Syntax: .
regexp : регулярное выражение (шаблон), описывающее группу файлов.
Пример:

 Order Allow,Deny Allow from all Deny from 192.168.1.1  

Перенаправления (редиректы)

Директива Redirect

Описание: Выполняет редирект посетителя, запрашивающего документ на другой URL. Выполняет внешний редирект (сообщая браузеру о необходимости загрузить другой URL).
Синтаксис: Redirect [ status ] URL-path URL
status : необязательное поле, определяет код возврата, допустимые значения: permanent (301 — документ перемещен постоянно), temp (302 — документ перемещен временно), seeother (303 — смотрите другой), gone (410 — убран).
URL-path : локальная часть URL запрашиваемого документа.
URL : URL куда должен быть выполнен редирект

Redirect temp / http://www.starsite.ru/newyear.html Redirect temp /article/1 http://www.starsite.ru/newyear.html Redirect permanent /prices2002.html http://www.starsite.ru/prices2003.html
Директива RedirectMatch

Описание: Выполняет редирект посетителя, запрашивающего документ на другой URL. Выполняет внешний редирект (сообщая браузеру о необходимости загрузить другой URL). Директива аналогична Redirect, за исключением того, что вместо адреса запрашиваемого документа пишется регулярное выражение (шаблон)
Синтаксис: Redirect [ status ] regexp URL
status : необязательное поле, определяет код возврата, допустимые значения: permanent (301 — документ перемещен постоянно), temp (302 — документ перемещен временно), seeother (303 — смотрите другой), gone (410 — убран).
URL-path : локальная часть URL запрашиваемого документа.
regexp : регулярное выражение (шаблон), описывающее группу URL-ей.

RedirectMatch (.*).gif$ http://www.starsite.ru$1.png RedirectMatch (.*.jpg)$ http://www.starsite.ru$1

Пример: разные страницы, в зависимости от IP адреса посетителя. В примере посетители с адреса 192.168.1.1 перенаправляются на другую страницу

RewriteCond % 192.168.1.1 RewriteRule ^/$ /anoter_index_pahe.html [L]

Пример: разные страницы, в зависимости от ссылающейся страницы. В примере посетители, приходящис со страницы http://www.starsite.ru/ вместо /prices.html получают /anoter_prices.html

RewriteCond % http://www.starsite.ru/recep.html RewriteRule ^/prices.html$ /anoter_prices.html [L]

Перенаправление посетителя при запросе определенных страниц:

Это уже для всех сетевых вирусов и сканеров. Теперь любой запрос с адресом /_vti_bin будет автоматически перенаправляться на Microsoft:

redirect /_vti_bin http://www.starsite.ru redirect /scripts http://www.starsite.ru redirect /MSADC http://www.starsite.ru redirect /c http://www.starsite.ru redirect /d http://www.starsite.ru redirect /_mem_bin http://www.starsite.ru redirect /msadc http://www.starsite.ru RedirectMatch (.*)cmd.exe$ http://www.starsite.ru$1

Ограничение доступа (пароли)

Директива Order

Описание: Устатавливает порядок работы директив Deny и Allow
Синтаксис: Order порядок
порядок может принимать значения Deny,Allow или Allow,Deny
По умолчанию: Order Deny,Allow

Директива Deny

Описание: Запрещает доступ определенных клиентов к ресурсам.
Синтаксис: Deny from all| host
host может принимать значения IP адреса или имени хоста.

Директива Allow

Описание: Разрешает доступ определенных клиентов к ресурсам.
Синтаксис: Deny from all| host
host может принимать значения IP адреса или имени хоста.

Пример: запрет на доступ для всех

Order Deny,Allow Deny from all

Пример: разрешение на доступ для определенных IP адресов

Order Deny,Allow Deny from all Allow from .iho.ru Allow from 192.168.1.1

Пример: запрет на доступ для всех за исключением определенных IP адресов

Order Allow,Deny Allow from all Deny from .iho.ru Deny from 192.168.1.1

Пример: запрет на доступ для определенный файл. В примере запрещается доступ к файлу .htpasswd для всех посетителей

 Order Deny,Allow Deny from all 

Пример: запрет на доступ для определенной группы файлов. В примере запрещается доступ к файлам с расширениями «lib» и «pm» для всех посетителей

 Order Deny,Allow Deny from all 

Установка пароля на доступ

Директива AuthName

Описание: значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации.

Директива AuthType

Описание: Эта директива выбирает тип аутентификации. Возможны следующие типы: Basic and Digest.
Синтаксис: AuthType Basic|Digest

Директива AuthUserFile

Описание: значение AuthUserFile указывает имя файла с паролями для аутентификации пользователей. Файл с паролями может быть создаен утилитой htpasswd. Путь к файлу с паролями задается относительно корня веб-сервера. Храните файл с паролями в папке, доступ к которой закрыт для пользователей. .
Синтаксис: AuthUserFile путь-к-файлу

Директива Require

Описание: Определяет пользователей, которые могут получить доступ
Синтаксис: Require имя-пользователя |valid-user
Указывая valid-user вы разрешаете доступ всем пользователям, перечисленным в файле паролей.

Пример: разрешает доступ директории всем пользователям:

AuthName "Restricted area" AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Require valid-user

Пример: разрешает доступ к директории только 3-м пользователям:

AuthName "Very restricted area" AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Require antonio solo marina

Пример: ограничение доступа к определенным файлам (в этом примере ограничен доступ к zip архивам)

 AuthName "Only valid users can download zip files." AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Require valid-user 

Пример: ограничение доступа к одному файлу (в этом примере ограничен доступ к файлу .htpasswd)

 AuthName "Access restricted." AuthType Basic AuthUserFile /home/st1331/www/data/.htpasswd Require antonio solo 

Управление сервером

Директива DirectoryIndex — изменения страницы по умолчанию (стартовой)

Описание: Позволяет изменить страницу, которая будет показываться при обращении к директории
Синтаксис: DirectoryIndex page [ page ]
page — название стартовой страницы. Может быть указано несколько страниц.
Пример:

DirectoryIndex main.html index.php test.shtml

Директива ErrorDocument — обработка ошибок

Описание: позволяет устанавливать альтернативные страницы ошибок
Синтаксис: ErrorDocument code URL-path
URL-path — локальный адрес страницы
code — код ошибки. Наиболее типичные коды ошиброк:
401 — Требуется авторизация (Authorization Required)
403 — пользователь не прошел аутентификацию, запрет на доступ (Forbided)
404 — запрашиваемый документ (файл, директория) не найден (Not Found)
500 — внутренняя ошибка сервера — ошибка скрипта или ошибка в синтаксисе файла .htaccess — (Internal Server Error)

ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html

Директива AddOutputFilter — установка фильтра (SSI)

 SetOutputFilter INCLUDES 

Директива SetHandler — установка обработчика (PHP, Parser)

Описание: устанавливает обработчик для файлов в заданной директории
Синтаксис: SetHandler handler-name

SetHandler php-script

Директива AddHandler — установка обработчика (PHP, Parser)

Описание: устанавливает обработчик для файлов указанного типа
Синтаксис: AddHandler handler-name filename-extension

AddHandler php-script .html AddHandler parser-script .htm

Директива AddDefaultCharset — установка обработчика (PHP, Parser)

По умолчанию на сервере установлена кодировка Windows-1251

AddDefaultCharset koi8-r

Как заставить Апач обрабатывать SSI директивы?

SSI позволяют «собирать» страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем — нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки. Необходимы обязательные установки в httpd.conf: В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes. После, в файле .htaccess пишем:

AddOutputFilter Includes .html .htm

Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

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

htpasswd

Директива htpasswd служит для создания файла с паролями, который может быть использован при аутентификации пользователей веб-сервером.

Пример: создание файла с паролями и добавление в него 1 имени:

htpasswd -c Filename username

Пример: Добавление или изменение файла с паролями

htpasswd Filename username2

Добавил файл .htaccess, и теперь сервер выдает 500 ошибку. Почему?

500-я ошибка может быть вызвана следующими причинами:
1. неверный синтаксис .htaccess
2. файл .htaccess записан в формате Windows, а должен быть записан в формате UNIX

Что это filesmatch html

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

Правила написания .htaccess

    пути к файлам (директориям) указываются от корня сервера.
    Правильный пример:

DirectoryIndex /home/st1331/www/data/main.html
DirectoryIndex /www/news/main.html
Redirect /oldsite/ http://www.site.ru/
Redirect /oldsite/ www.site.ru/

Определение области действия директив

Директива Files

Описание: директива Files ограничивает действие директив одним файлом

filename имя файла
Пример:


Order Deny,Allow
Deny from all
Allow from 192.168.1.1

Директива FilesMatch

Описание: директива FilesMatch ограничивает действие директив группы файлов

regexp: регулярное выражение (шаблон), описывающее группу файлов.
Пример:


Order Allow,Deny
Allow from all
Deny from 192.168.1.1

Перенаправления (редиректы)

Директива Redirect

Описание: Выполняет редирект посетителя, запрашивающего документ на другой URL. Выполняет внешний редирект (сообщая браузеру о необходимости загрузить другой URL).
Синтаксис: Redirect [status] URL-path URL status: необязательное поле, определяет код возврата, допустимые значения: permanent (301 — документ перемещен постоянно), temp (302 — документ перемещен временно), seeother (303 — смотрите другой), gone (410 — убран).
URL-path: локальная часть URL запрашиваемого документа.
URL: URL куда должен быть выполнен редирект

Redirect temp / http://www.iho.ru/newyear.html
Redirect temp /index.html http://www.iho.ru/newyear.html
Redirect permanent /prices2002.html http://www.iho.ru/prices2003.html

Директива RedirectMatch

Описание: Выполняет редирект посетителя, запрашивающего документ на другой URL. Выполняет внешний редирект (сообщая браузеру о необходимости загрузить другой URL). Директива аналогична Redirect, за исключением того, что вместо адреса запрашиваемого документа пишется регулярное выражение (шаблон)
Синтаксис: Redirect [status] regexp URL
status: необязательное поле, определяет код возврата, допустимые значения: permanent (301 — документ перемещен постоянно), temp (302 — документ перемещен временно), seeother (303 — смотрите другой), gone (410 — убран).
URL-path: локальная часть URL запрашиваемого документа.
regexp: регулярное выражение (шаблон), описывающее группу URL-ей.

RedirectMatch (.*).gif$ http://www.myserver.com$1.png
RedirectMatch (.*.jpg)$ http://www.myanother.com$1

Ограничение доступа (пароли)

Директива Order

Описание: Устатавливает порядок работы директив Deny и Allow
Синтаксис: Order порядок
порядок может принимать значения Deny, Allow или Allow,Deny
По умолчанию: Order Deny, Allow

Директива Deny

Описание: Запрещает доступ определенных клиентов к ресурсам.
Синтаксис: Deny from all|host
host может принимать значения IP адреса или имени хоста.

Директива Allow

Описание: Разрешает доступ определенных клиентов к ресурсам.
Синтаксис: Allow from all|host
host может принимать значения IP адреса или имени хоста.
Пример: запрет на доступ для всех

Order Deny,Allow
Deny from all

Пример: разрешение на доступ для определенных IP адресов

Order Deny,Allow
Deny from all
Allow from .iho.ru
Allow from 192.168.1.1

Пример: запрет на доступ для всех за исключением определенных IP адресов

Order Allow,Deny
Allow from all
Deny from .iho.ru
Deny from 192.168.1.1

Пример: запрет на доступ для определенный файл. В примере запрещается доступ к файлу .htpasswd для всех посетителей


Order Deny,Allow
Deny from all

Пример: запрет на доступ для определенной группы файлов. В примере запрещается доступ к файлам с расширениями «lib» и «pm» для всех посетителей


Order Deny,Allow
Deny from all

Установка пароля на доступ

Директива AuthName

Описание: значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации.

Директива AuthType

Описание: Эта директива выбирает тип аутентификации. Возможны следующие типы: Basic and Digest.
Синтаксис: AuthType Basic|Digest

Директива AuthUserFile

Описание: значение AuthUserFile указывает имя файла с паролями для аутентификации пользователей. Файл с паролями может быть создан утилитой htpasswd. Путь к файлу с паролями задается относительно корня веб-сервера. Храните файл с паролями в папке, доступ к которой закрыт для пользователей.
Синтаксис: AuthUserFile путь-к-файлу

Директива Require

Описание: Определяет пользователей, которые могут получить доступ
Синтаксис: Require имя-пользователя|valid-user
Указывая valid-user вы разрешаете доступ всем пользователям, перечисленным в файле паролей.
Пример: разрешает доступ директории всем пользователям:

AuthName «Restricted area»
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require valid-user

Пример: разрешает доступ к директории только 3-м пользователям:

AuthName «Very restricted area»
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require antonio solo marina

Пример: ограничение доступа к определенным файлам (в этом примере ограничен доступ к zip архивам)


AuthName «Only valid users can download zip files.»
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require valid-user

Пример: ограничение доступа к одному файлу (в этом примере ограничен доступ к файлу .htpasswd)


AuthName «Access restricted.»
AuthType Basic
AuthUserFile /home/st1331/www/data/.htpasswd
Require antonio solo

Управление сервером

Директива DirectoryIndex

Описание: Позволяет изменить страницу, которая будет показываться при обращении к директории
Синтаксис: DirectoryIndex page [page]
page — название стартовой страницы. Может быть указано несколько страниц.
Пример:

DirectoryIndex main.html index.php test.shtml

Директива ErrorDocument

Описание: позволяет устанавливать альтернативные страницы ошибок
Синтаксис: ErrorDocument code URL-path
URL -path — локальный адрес страницы
code — код ошибки. Наиболее типичные коды ошиброк:
401 — Требуется авторизация (Authorization Required)
403 — пользователь не прошел аутентификацию, запрет на доступ (Forbided)
404 — запрашиваемый документ (файл, директория) не найден (Not Found)
500 — внутренняя ошибка сервера — ошибка скрипта или ошибка в синтаксисе файла .htaccess — (Internal Server Error)

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Директива SetHandler

Описание: устанавливает обработчик для файлов в заданной директории
Синтаксис: SetHandler handler-name

SetHandler php-script

Директива AddHandler

устанавливает обработчик для файлов указанного типа
Синтаксис: AddHandler handler-name filename-extension

AddHandler php-script .html
AddHandler parser-script .htm

Директива AddDefaultCharset

Описание: установка кодировки по-умолчанию
По умолчанию на сервере установлена кодировка Windows-1251

AddDefaultCharset koi8-r

Как заставить Апач обрабатывать SSI директивы?

SSI позволяют «собирать» страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем — нижней. А посетитель видит обычную страницу, которая состоит из того кода, который входит в ваши кусочки. Необходимы обязательные установки в httpd.conf: В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes. После, в файле .htaccess пишем:

AddOutputFilter Includes .html .htm

Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

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

Options -Indexes

Пользователь не сможет просмотреть эту папку.

В: Добавил файл .htaccess, и теперь сервер выдает 500 ошибку. Почему?
О: 500-я ошибка может быть вызвана следующими причинами:
1. неверный синтаксис .htaccess
2. файл .htaccess записан в формате Windows, а должен быть записан в формате UNIX

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *