Deny from all

Одной из наиболее часто используемых возможностей файла .htaccess является ограничение доступа пользователей к определенным ресурсам сайта. Именно об этой возможности .htaccess ниже и пойдет речь.

Рассмотрим директиву Order файла .htaccess. Эта директива устанавливает порядок работы директив Deny (запрета доступа) и Allow (разрешения доступа). Order — в переводе означает порядок. Порядок может принимать два воможных значения: Deny,Allow или Allow,Deny.

По умолчанию, директива Order имеет следующий вид:

Order Deny,Allow 

Этот порядок означает, что сначала будут обработаны директивы запрета доступа, а уже затем — директивы разрешения. Т.е, более высоким будет приоритет разрешения.

Рассмотрим синтаксис директив запрета и разрешения доступа:

Deny from all|host Allow from all|host 

host может принимать значения IP адреса или имени хоста.


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

Order Deny,Allow Deny from all 

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

Order Deny,Allow Deny from all Allow from 111.111.111.111, 222.222.222.222 

Как видим, сначала будет обработана инструкция на запрет доступа для всех, а затем — сработает инструкция на разрешение доступа к ресурсу с узлов с IP-адресами 111.111.111.111 и 222.222.222.222.

Директивы запрета на доступ для определенного IP адреса или хоста будут иметь похожий вид:

Order Allow,Deny Allow from all Deny from 111.111.111.111, 222.222.222.222 

Вначале разрешается доступ для всех, затем — доступ блокируется для адресов 111.111.111.111 и 222.222.222.222.

Если нужно настроить доступ через Apache к определенным файлам, используются директивы управления файлами: <Files > </Files> (для управления файлами по имени) и <FilesMatch > <FilesMatch> (для управления файлами по маске или расширению). В открывающей директиве в кавычках указывается имя файла, или расширение, а директивы управления доступом помещаются внутрь блока данных директив. Рассмотрим примеры:


<Files ".htpasswd"> Order Deny,Allow Deny from all </Files> 

Директивы, указанные выше, обеспечивают запрет доступа к файлам с именем .htpasswd абсолютно для всех пользователей. Если нужно запретить доступ к файлам с определенным расширением, используется директива <FilesMatch > <FilesMatch>. К примеру, нужно закрыть доступ ко всем txt и exe файлам:

<FilesMatch ".(txt|exe)$"> Order Deny,Allow Deny from all </FilesMatch> 

Иногда нужно запретить использование каких-либо методов для доступа к сайту или определенным его ресурсам. Для этого служит директива <Limit > </Limit>. К примеру, запретим использование метода GET для IP 33.33.33.33:

<Limit GET> Order Allow,Deny Deny from 33.33.33.33 Allow from All </Limit> 

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

wiki.owlhost.net

Запрет на все файлы:deny from all
Где all обозначает «все».


Разрешить доступ с определенного ip:order allow deny
deny from all
allow from <ваш ip>

В данном случае, <ваш ip> обозначает конкретный адрес.
Например:order allow deny
deny from all
allow from 192.126.12.199


Запретить доступ с определенного ip:order allow deny
deny from all
deny from <ваш ip>
Использование <ваш ip> аналогично для примера выше.

В зависимости от того в каком порядке указаны директивы меняется логика работы сервера. В случае если Deny,Allow то запрещается доступ со всех IP кроме оговоренных, в случае если Allow,Deny разрешается доступ со всех IP кроме оговоренных. Далее должны идти секции описания для доступа и запрета. Ключевое слово all означает со всех IP

Например мы хотим запретить (блокировать) доступ с IP 81.222.144.12 и 81.222.144.20 и разрешить всем остальным нам необходимо добавить в .htaccess следующий код:

Order Allow,Deny
Allow from all
Deny from 81.222.144.12, 81.222.144.20

Для обратной ситуации когда мы хотим запретить доступ со всех IP кроме 81.222.144.12 и 81.222.144.20 нам необходимо добавить в .htaccess следующий код:

Order Deny,Allow
Deny from all
Allow from 81.222.144.12, 81.222.144.20

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


  • для доменного имени (или его части):
    Allow from apache.org
    Allow from .net example.edu
  • для ip адреса:
    Allow from 10.1.2.3
    Allow from 192.168.1.104 192.168.1.205
  • для части ip адреса:
    Allow from 10.1
    Allow from 10 172.20 192.168.2
  • для пары сеть/маска:
    Allow from 10.1.0.0/255.255.0.0
  • для сети/nnn CIDR спецификации:
    Allow from 10.1.0.0/16 

Запрет на группу файлов по маске:<Files ".(inc|sql|...другие расширения...)$">
order allow,deny
deny from all
</Files>
Определяет доступ к файлу по его расширению.
Например запрет на доступ к файлам с расширениям «inc» для веб-посетителей:
<Files «.(inc)$»>
order allow,deny
deny from all
</Files>

В данном примере сам веб-сервер Апач может обращаться к файлам с таким расширениям.


Запрет на конкретный файл:
Можно поставить запрет на конкретный файл по его названию и расширению.<Files config.inc.php>
order allow,deny
deny from all
</Files>
В данном примере стоит запрет на обращения к файлу config.inc.php.


Пароль на директорию:AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
require valid-user
</Files>

Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.

Например в директории, которую защищаем паролем создаем такой .htaccess:AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
</Files>
В этом примере, посетитель при запросе директории, будет читать фразу «For Registered Users Only», файл с паролями для доступа должен лежать в директории /pub/site.ru/ и называться .htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.


Пароль только на 1 файл:сайт источник http://yapro.ru Tue Feb 09 2010 15:44:59 GMT+0300
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:<Files private.zip>
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>


Пароль на группу файлов:
Аналогично, используя <Files «.(inc|sql|…другие расширения…)$»>, можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением «sql»:
<Files «.(sql)$»>
AuthName «Users zone»
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>

yapro.ru

Директива Order, вместе с директивами Allow и Deny, контролирует трёх-шаговую систему контроля доступа. Первый шаг обрабатывает или все директивы Allow, или все директивы Deny. Второй шаг разбирает оставшуюся директиву (Deny или Allow). Третий шаг принимает все запросы, которые не соответствуют ни первой, ни второй.

Директивы, Allow и Deny, обрабатываются, нетипично поведению сетевых экранов (firewall), где используется только первая директива. Результирующим является последнее соответствие (также нетипично поведению сетевых экранов).

Order Deny,Allow   Deny from all   Allow from 192.168.1.*

В данном примере, если пытаться следовать логике firewall, запрет доступа реализован для всех хостов, и разрешение 192.168.1.* не сработает, в то время, как в соответствии с принципами рассматриваемых конфигурационных файлов apache (в том числе cupsd.conf) доступ хостам из подсети 192.168.1.* разрешён.

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


  • Allow,Deny
    Сперва, проверяются все директивы Allow; по крайней мере одна должна соответствовать, или запрос отвергается. Далее, провеляются все директивы Deny. Если какие-либо соответствуют, то запрос отвергается. В конце, любой запрос, который не соответствует директиве Allow или Deny отвергается по умолчанию.
  • Deny,Allow
    Сперва, проверяются все директивы Deny; если какая-либо соответствует, то запрос отвергается, если нет соответствия в директиве Allow. Любой запрос, который не соответствует директиве Allow или Deny пропускается.

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

Соответствие Результат Allow,Deny Результат Deny,Allow
Соответствует только Allow Запрос разрешён Запрос разрешён
Соответствует только Deny Запрос отклонён Запрос отклонён
Нет соответствий По умолчанию действует вторая директива: отклонён По умолчанию действует вторая директива: разрешён
Соответствуют обе Allow & Deny Управляет конечное соответствие: отклонён Управляет конечное соответствие: разрешён

В нижеприведённом примере, всем хостам в подсети 192.168.1.* доступ разрешён.

Order Deny,Allow  Deny from all  Allow from 192.168.1.*

В следующем примере, всем хостам из подсети 192.168.1.* доступ разрешён, за исключением хостов 192.168.1.5 и 192.168.1.24, всем другим хостам из других подсетей доступ запрещён, т.к. для сервера состояние по умолчанию Deny, отказать в доступе.

Order Allow,Deny  Allow from 192.168.1.*  Deny from 192.168.1.5  Deny from 192.168.1.24

С другой стороны, если порядок в директиве Order в последнем примере поменять на Deny,Allow, всем хостам доступ будет разрешён. Это случится потому, что не считая актуальным следование директив в конфигурационном файле, данная директива Allow из 192.168.1.* будет сверена последней, и перекроет отказ в доступе с 192.168.1.5 и 192.168.1.24 директивы Deny. Всем хостам не из 192.168.1.* также будет разрешён доступ, т.к. состояние по умолчанию — Allow.

www.wandmagic.ru

What is .htaccess File?

.htaccess is a configuration file used by a web server (Apache). The full form of htaccess is Hypertext Access. Htaccess files are used to override server global configuration for the directory level in which you place this file.


.htaccess file contain directives, which is read by webserver (Apache) and apply them to the directory level where this htaccess file is placed.

Why we use the .htaccess File?

The .htaccess file is very useful when

i) You don’t have an access to httpd.conf file (Apache main configuration file).
ii) You want to enforce some directory level configuration.

Imagine you have more than one website running on the same server and you want to configure different rules for each website. In that case, you won’t change global configuration (httpd.conf file) as it applies to both the websites. In that case, the .htaccess file is an ideal way to specify changes.

Application of .htaccess File

There are a lot of things you can do through by using the .htaccess file. Here’s the list of some useful things you can easily do by using the .htaccess file.

Password Protect a Folder through .htaccess

URL Rewriting – Create Seo-Friendly through .htaccess

How to Prevent Image hotlinking through .htaccess File

How to Leverage browser Caching through .htaccess File

How to Deny Access to Files, Folders through htaccess


To prevent direct access of all the files and folders of your project. Create a .htaccess file in the root of your project directory structure. Then open the .htaccess file and write this directive deny from all.

Now you are done. If you want to check whether this directive is working or not. Try to access any file or folder of your project. You will get the following message.

How to Password Protect Folder through .htaccess

How to Deny Access to a Certain File Types through .htaccess

Now we have discussed how to prevent direct access to files and folders through .htaccess. But sometimes we need to prevent certain file types for direct access. Let’s understand how to prevent the access of certain file types.

How to Deny Access to all Files with .php Extension through htaccess

How to Deny all Files with .inc Extension

How to Deny Access to a Single File through .htaccess

Suppose, I want to prevent an access to a specific file. Let’s take an example of config file which has all the system configuration. config.php is one example, you can include any PHP file. To disallow the access to single you need to mention the file name in .htaccess.

Deny access to config.php file through htaccess

2. How to Deny Access to .htaccess file.

webrewrite.com

Поискал на форуме и выяснилось, что конкретных советов по этому нужному файлу мало…
Может кому пригодится… Я постараюсь выложить часть скомпилированной документации из разных источников… Авторства, уж извините, указывать не буду, да и сделать это крайне затруднительно…
Хочу только выразить большую благодарность Mavn, от которого я впервые узнал о таком великолепном настроечном способе… и за его ценные советы…
Итак…
C помощью файла .htaccess можно быстро блокировать или, напротив, разрешать доступ как определенным IP-адресам, так и целым диапазонам, что требуется, — создать в требуемой папке текстовый файл .htaccess следующего содержания:


Order deny,allow
Deny from all
Allow from 62.148.3.4
Allow from 62.148.10


— Строка «Order deny,allow» определяет, в какой последовательности выполняются запрещающие (deny) и разрешающие (allow) условия.
— Строка «Deny from all» («запретить всем») полностью блокирует доступ к папке независимо от IP-адреса посетителя.
— Строка Allow from 62.148.3.4 — разрешает подключение с одного единственного IP-адреса.
— Строка Allow from 62.148.10 — открывает доступ для всех клиентов с адресами, начинающимися с 62.148.10.

Для того чтобы уведомить посетителя, что доступ запрещен, необходимо переобозначить страницы с сообщением об ошибке 403 (доступ запрещен): создай новою страницу с пояснением о закрытии доступа и сохрани ее в данном каталоге под именем warning.html (имя может быть любым…). Далее открой уже имеющийся файл .htaccess и добавь туда следующую строчку: ErrorDocument 403 /warning.htm.
Необходимость в создании дополнительной страницы warning.html отпадает, если вместо этой строки ввести следующее: ErrorDocument 403 «Доступ запрещен! Вы забанены по IP-адресу».

Иллюстрация. С помощью вот такого крохотного файлика я полностью блокирую доступ к форуму на время его обновления…


Order Deny,Allow
Deny from all
Allow from ? ? ?.? ? ?.? ? ?.? ? ?


Естественно, вместо вопросительных знаков надо подставить собственный IP… Можно и надпись сделать, как описано выше…

Приведу пример моего основного .htaccess (держу его в корневой директории форума):


DirectoryIndex index.php
Options -Indexes

<Files Settings.php>
order allow,deny
deny from all
</Files>

<Files Settings_bak.php>
order allow,deny
deny from all
</Files>

<Files upgrade_1-0.sql>
order allow,deny
deny from all
</Files>

<Files upgrade_1-1.sql>
order allow,deny
deny from all
</Files>

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

ErrorDocument 403 http://www.?????.ru
ErrorDocument 404 http://www.?????.ru
ErrorDocument 500 http://www.?????.ru

order Allow,Deny
Deny from 74.6
Allow from All


Итак, по-порядку:

1) DirectoryIndex index.php — при простом обращении к директории форума будет автоматом запускаться index.php, то бишь форум…

2) Options -Indexes — запрет на отображение содержимого директории.

3) <Files Settings.php>
order allow,deny
deny from all
</Files> — и подобные блоки — запрет на просмотр конкретного файла для всех…

4) redirect /_vti_bin http://www.microsoft.com

RedirectMatch (.*)cmd.exe$ http://www.microsoft.com$1

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

5) ErrorDocument 403 http://www.?????.ru
ErrorDocument 404 http://www.?????.ru
ErrorDocument 500 http://www.?????.ru

Установка альтернативных страниц ошибок…
403 — пользователь не прошел аутентификацию, запрет на доступ (Forbided)
404 — запрашиваемый документ (файл, директория) не найден (Not Found)
500 — внутренняя ошибка сервера — ошибка скрипта или ошибка в синтаксисе файла .htaccess — (Internal Server Error)
В результате пользователь попадает на мой основной сайт… Естественно, вместо "?" надо подставить нужный ресурс…

6) order Allow,Deny
Deny from 74.6
Allow from All

А вот с этим пришлось повозиться… Таким образом задаётся запрет на доступ сетевых пауков, т.е. запись 74.6 означает, что доступ для всех адресов, начинающихся с этих цифр будет запрещён…
Благодаря такому нехитрому способу можно значительно разгрузить сервер! Присмотритесь к "гостям", среди них есть много подобных пауков… Ну нафига мне на форуме (русскоязычном!) американские пауки!

Надеюсь и другие поделятся собственными находками в этом славном ;) .htaccess…

www.simplemachines.ru

Поскольку файлы .htaccess являются служебными, то они не доступны веб-пользователю из браузера. Хотя конечно же, абсолютно всё, в том числе и это ограничение, можно переназначить в httpd.conf — главном конфигурационном файле сервера доступному только администратору хостинга.

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

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

Поэтому сохраните оригинальный файл .htaccess на всякий пожарный:))

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

Как сделать .htaccess
Просто. На локальном компе создаем текстовый документ .htaccess.txt, по FTP заливаем его на хост, и переименовываем в .htaccess

Основные возможности htaccess.

В начале рассмотрим директиву Order файла .htaccess Apache сервера
Описание: Устатавливает порядок работы директив Deny и Allow
Order — в переводе порядок. Порядок может принимать значения [Deny , Allow] или [Allow , Deny].
Синтаксис — состояние по умолчанию:

Order Deny,Allow

Директива Deny — в переводе запрет
Описание: Запрещает доступ определенных клиентов к ресурсам.
Синтаксис:

Deny from all|host

host может принимать значения IP адреса или имени хоста.

Директива Allow — в переводе разрешить
Описание: Разрешает доступ определенных клиентов к ресурсам.
Синтаксис:

Allow from all|host

host может принимать значения IP адреса или имени хоста.

.htaccess запрет на доступ для всех

Order Deny,Allow
Deny from all

.htaccess — разрешение на доступ для определенного IP адреса и хоста.

Order Deny,Allow
# запрет для всех на доступ к ресурсу

Deny from all
# разрешаем только следующим
Allow from local.
Allow from 100.99.99.1, 100.99.99.2

.htaccess — запрет на доступ для пределенного IP адреса и хоста.

Order Allow,Deny
#разрешаем заходить на сервер всем

Allow from all
Deny from local.
Deny from 100.99.99.1, 100.99.99.2

Если нужно запретить всей сети 100.99.99.1 — 100.99.99.255 то ставим комбинацию первых лем: 100.99.99

Запрет на доступ для определенного файла.

Директива Files файла .htaccess сервера Apache
В примере запрещается доступ к файлу с паролями .htpasswd для всех посетителей кроме 100.99.99.1 и 2

<Files «.htpasswd»>

Order Deny,Allow
Deny from all
Allow from 100.99.99.1, 100.99.99.2

</Files>

Запрет передачи данных браузера методом GET.

В данном примере мы запретим пользователям с айпи-адресами (IP) 100.99.99.1, 100.99.99.2 заходить на ресурс используя метод GET для передачи данных браузером — .htaccess ip:

<Limit GET>

Order Allow,Deny
Deny from 100.99.99.1, 100.99.99.2
Allow from All

</Limit>

Мы запретили пользователю с IP адресом 100.99.99.1 смотреть сайт. Если вместо 100.99.99.1 написать 100.99.99, то доступ будет запрещен для всей сети класса C.

Запрет на доступ к определенной группе файлов.

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

<FilesMatch «.(lib|pm)$»>

# или например : <FilesMatch «.(gif|jpe?g|png)$»>

Order Deny,Allow
Deny from all
Deny from 100.99.99.1

</FilesMatch>

Как с помощью .htpasswd и .htaccess запретить доступ к папке сайта.

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

Содержание:

AuthType Basic
AuthName «Please input login and password!»
AuthUserFile  /usr/host/mysite/.htpasswd
require valid-user

  • AuthType — может иметь значение Basic или Digest, в нашем случае нам подойдет Basic.
  • AuthName — текст выводимый вместе с формой авторизации.
  • AuthUserFile — путь к файлу с паролями (.htpasswd).
  • AuthGroupFile — путь к файлу групп, если он существует.
  • Require — определяет параметры аутентификации. (User,Group,Valid-user) Valid-user – все прошедшие проверку. User – пользователи имеющие права доступа. Group – группы пользователей имеющие права доступа.

Создайте файл .htpasswd и в него поместите следующую строку:

admin:$apr1$ejtOHg/4$cMColJLMZ39weAalo3V8k0

Строка эта содержит пару логин и пароль где:

Логин: admin
Пароль: 1

Чтобы генерировать любые пароли для файла .htpasswd можно воспользоваться утилитой для генерации паролей htpasswd.exe Скачать утилиту для генерации паролей htpasswd.exe

Пользоваться утилитой для генерации паролей очень легко, нужно создать файл .htpasswd и в программе выбрать его с помощью кнопки “Old file“. Далее все интуитивно понятно, вводим новых пользователей и пароли к ним, затем жмем на “Update“. Кстати данная утилита генерации паролей для htpasswd, может не только создавать новые, но и редактировать старые пароли. Что очень удобно, в случае если вы забыли старый пароль. Еще стоит сказать что эта утилита является стандартной и поставляется вместе с сервером Apache.

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

Внимание важное замечание! Очень полезным будет расположить файл с паролями вне папки с содержимым сайта. Это позволит защитить его от злоумышленников.

Перенаправление посетителей при обновлении сайта.

order deny,allow     deny from all     allow from 123.123.123.123     ErrorDocument 403 /page.html     <Files page.html>     allow from all     </Files>

Замените 123.123.123.123 на Ваш ip-адрес, а также замените page.html на ту страницу, которую будут видеть пользователи, зашедшие на сайт

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

Когда пользователи обращаются к странице на Вашем сайте, которой не существует, то им показывается ошибка 404. Если вы хотите сделать ее определенной страницей, то в файле htaccess следует прописать следующий код:

ErrorDocument 404 /404.html

Перенаправлять посетителей в таком случае удобно на главную страницу сайта.

Редирект на перемещенные или переименованные страницы.

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

Redirect 301 /old.html http://yoursite.com/new.html

Также вы можете использовать такой редирект для того, чтобы страница не потерялась для поисковиков.

Запрет на просмотр директории.

Если у Вас в папке на сайте нет файла index, то любой пользователь может посмотреть, какие файлы в ней лежат.

Чтобы избежать таких вещей, следует прописать такой код:

Options All -Indexes

На некоторых хостингах такая функция прописана по-умолчанию, в таком случае Вам не стоит беспокоиться.

Создание красивых URL

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

Вот некоторые примеры с кодом:

RewriteEngine on     RewriteRule ^about/$ /pages/about.html [L]     RewriteRule ^features/$ /features.php [L]     RewriteRule ^buy/$ /buy.html [L]     RewriteRule ^contact/$ /pages/contact.htm [L]

Переопределение сообщений об ошибках

Одной из полезных возможностей, предоставляемых Apache, является подмена стандартных сообщений об ошибках веб-сервера своими. Для этого служит директива ErrorDocument.

ErrorDocument 403 «<BODY><H1>Forbidden</H1>
ErrorDocument 404 /errors/404.html

Внимание: при указании непосредственно HTML кода в данной директиве кавычки ставятся только в начале строки (см. пример)!
Пути к файлам указываются относительно корневого каталога данного веб-хоста, а не относительно файловой системы (правильно: /errors/404.html; неправильно: /var/www/myhost/html/errors/404.html).

Включение поддержки SSI

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

AddType text/html .shtml .htm .html
AddHandler server-parsed .shtml
Options +Includes

Блокировка по реферреру

Посредством использования модуля mod_rewrite и файла .htaccess можно добиться запрета доступа к Вашим ресурсам, если клиент пришел с какого-то определенного сайта (блокировка по referer’у).

Для этого требуются следующие директивы .htaccess:

RewriteEngine on
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} badsite.com [NC]
RewriteRule .* – [F]

Или, если нужно перечислить больше одного сайта,

RewriteEngine on
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} badsite.com [NC,OR]
RewriteCond %{HTTP_REFERER} anotherbadsite.com
RewriteRule .* – [F]

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

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.ru(/)?
RewriteCond %{HTTP_REFERER} !^http://(.*).mydomain.ru(/)?
RewriteRule .*.(gif|jpg|jpeg|png)$ – [F]
Изменение индекс-страницы

Задать/Изменить индексный файл и последовательность их обработки можно директивой DirectoryIndex
Например:

DirectoryIndex photo.php photo.php5 index.php

Перенаправления

Для организации редиректа средствами .htaccess достаточно строки вида:
Redirect /old_directory/old_file.html http://your_new_site.com/new_directory/new_file.html

если нужно редиректить все содержимое подкаталога:
Redirect /old_directory http://your_new_site.com/new_directory/

редирект для всего сайта:
RewriteEngine On
RewriteRule (.*) http://your_new_site.ru

Запрет обращений к .htaccess

Защитить их можно следующим образом, однако, это по умолчанию уже есть в httpd(2).conf, то есть в самой конфигурациии веб-сервера.

<Files ~ «^.ht»>
Order allow,deny
Deny from all

</Files>

Добавление MIME-типов

Для добавления MIME-типов используется директива
AddType mime/type extension
Например,
AddType application/x-bittorrent torrent

Используется она в тех случаях, когда конфигурация по умолчанию заставляет сервер передавать документы не так, как требуется; например, многие серверы по умолчанию подразумевают тип text/plain, и бинарный файл (например, rar-архив), скачанный с такого сервера, вполне может оказаться «битым».

Запрет прямых ссылок на ресурсы

Если Вы хотите избежать так называемого «хотлинкинга» – прямых ссылок на Ваши ресурсы с других сайтов – Вам опять-таки поможет .htaccess в комбинации с mod_rewrite.
Для начала рассмотрим, чем плох хотлинкинг. Например, некий сайт размещает у себя изображение, находящееся на Вашем сайте, просто указав его в тэге <img src>. При этом все обращения к такой странице вызовут скачивание данного изображения с Вашего сайта; таким образом, будет расходоваться Ваш траффик и пропускная способность канала сервера, а посетители чужого веб-сайта увидят изображение, хранящееся у Вас, без соответствующего контекста.

Как же бороться с подобной практикой?
Рассмотрим следующий пример части файла .htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(js|css)$ — [F]

Данный код запрещает обращения к .js и .css файлам (скрипты javascript и описания Cascading Style Sheets), если они производятся не с Вашего сайта.

Другой пример:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(png|gif|jpg|jpeg)$ http://www.mydomain.com/youaretheworst.gif [R,L]

При обращении извне к изображениям, хранящимся на вашем сайте, вместо самих изображений будет отображаться содержимое файла youaretheworst.gif.

Запрет вывода списка файлов

Apache (при включении соответствующих опций) умеет отображать список файлов в каталоге, если в нем нет ни одного из перечисленных в DirectoryIndex файлов. Часто эта опция включена по умолчанию, что может быть неприемлемо.
Строчка
Options -Indexes
отключит этот режим.

Однако иногда может, наоборот, понадобиться разрешить просматривать список файлов, при этом исключив из него их часть. Для этого служит IndexIgnore.
Например,
IndexIgnore *.php* *.pl *.html *.shtml
разрешает вывод списка всех файлов, кроме PHP и Perl скриптов, а также HTML документов.

и еще…

Меняем страницу, которая будет показываться при обращении к директории.

Пропишем в файле .htaccess:

Код
DirectoryIndex index.shtml

** При обращение к директории, в которой лежит .htaccess, будет грузиться файл index.shtml

Запрет доступа с помощью .htaccess

При желании можем дать запрет на все файлы:

Код
deny from all

*** никто ничего не увидит.

Разрешить доступ посетителю только с определенного ip:

Код
Order Allow,Deny
deny from all
allow from 192.168.8.1

*** Всем кроме посетителя с IP 192.168.8.1 доступ запрещен.

Кстати, вместо ip адреса в .htaccess можно использовать имя домена. Например. Запретим доступ для всех посетителей, кроме пришедших с www.talkonline.ru :

Код
Order Deny,Allow
Deny from all
Allow from .talkonline.ru

Запрет доступа для определенного ip:

Код
Order Allow,Deny
Allow from all
deny from 192.168.8.1

*** Для посетителя с IP 192.168.8.1 доступ на сайт запрещен.
**** Только не спрашивайте у меня где всять список китайских ip

Аналогично, как и в примере выше, можно вместо (а можно и совместно) IP использовать имя домена, т.е. запретить доступ для посетителей, пришедших с определенного сайта:

Код
Order Allow,Deny
Allow from all
deny from .thehun.net
deny from 192.168.8.1

*** Для посетителя с IP 192.168.8.1 и всех, кто пришел с thehun.net доступ на сайт запрещен.

Определенная кодировка на все загружаемые на хост файлы:

Код
CharsetSourceEnc windows-iso-8859-1

*** все файлы будут иметь кодировку windows-iso-8859-1

Можно выставить определенную кодировку лишь на конкретные загружаемые на хост файлы:

Код
AddType «application/x-httpd-php3; charset=windows-iso-8859-1» .html
AddType «application/x-httpd-php3; charset=windows-1251» .htm

*** Устанавливаем кодировку windows-iso-8859-1 на файлы .html и windows-1251 на файлы .htm

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

Код
AddDefaultCharset windows-iso-8859-1

*** Все страницы, которые отдает сервер клиенту, будут иметь кодировку windows-iso-8859-1

Перенаправляем посетителей на другой URL (редирект)
В .htaccess пишем:

Код
Redirect / http://talkonline.ru

*** все посетители будут перенаправлены на www.talkonline.ru

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

Код
redirect /scripts http://www.microsoft.com
redirect /_vti_bin http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*)cmd.exe$ http://www.microsoft.com$1

*** Любой запрос с адресом /_vti_bin или /scripts будет автоматически перенаправляться на сайт Microsoft

Редирект посетителей в зависимости от реффера (ссылающейся страницы):

Код
RewriteCond %{HTTP_REFERER} http://www.yandex.ru
RewriteRule ^/yandex.html$ /google.html [L]

*** В данном случае все с yandex.ru вместо файла yandex.html получат файлик google.html

Как сделать 301 редирект для joomla:

1. На сервере находим файл .htaccess, обычно он лежит в корневом каталоге.

2. Делаем резервную копию .htaccess  !!!

3. Находим следующие строки:

########## Begin — Joomla! core SEF Section
#
Информация
#
######### End — Joomla! core SEF Section

4. Между ними будет информация, а в последней строке в квадратных скобках будет атрибут «L», удаляем его.

5. Если Вы хотите чтобы название вашего сайта в адресной строке писалось с www, после «информации»добавляем следующее

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^site.com [NC]
RewriteRule ^(.*) http://www.site.com/$1 [L,R=permanent]

Если Вы хотите чтобы название вашего сайта в адресной строке писалось без www, после «информации»добавляем это

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.site.com [NC]
RewriteRule ^(.*) http://site.com/$1 [L,R=permanent]

6. Проверяем, также проверьте открываются ли внутренние страницы, если всё гуд то см. пункт 7, если нет, то загружаем резервную копию файла .htaccess и возвращаемся к пункту 2.

7. Пишем комментарий, а если поставите на своём сайте ссылочку на эту статью, моё сердце наполнится радостью и милость Богов Яндекса и Гугла снизойдёт на Ваш ресурс

 

По материалам сайта http://www.htaccess.net.ru, http://www.maxua.com.ua/, www.rabotafree.com

www.alexsima.com

1. Управление доступом к файлам и каталогам

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

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

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

xxx.xxx.xxx.xxx — ваш IP адрес. Если заменить последние три цифры на 0/12, например, то будет указан диапазон IP адресов в одной сети. Но такой подход может привести к проблемам, поэтому лучше указывать список IP адресов раздельно.

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

Аналогично, если вам требуется открыть доступ с определенных IP адресов, перечислите их с помощью allow from.

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

 

2. Запрещаем просмотр директории

Для запрещения просмотра содержимого директории используйте следующий код:

Но если вам нужно по каким-то причинам разрешить просмотр директории, используйте следующий код:

 

3. Ускоряем загрузку с помощью сжатия файлов

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

А для сжатия текстовых:

Можно также сжимать JavaScript файлы или определять несколько типов файлов для архивации:

В качестве альтернативы можно сжимать все HTML, JavaScript, CSS и прочие файлы с помощью GZIP:

 

4. Защищаем сайт от хотлинкинга

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

Просто замените вашдомен.ru на название своего домена.

 

5. Блокирование пользователей перенаправленных с определенного домена

Если вы не приветствуете пользователей определенного домена, то можно забанить на своем сайте. Например, если ваш сайт попал в список там, откуда не желателен трафик (например, порнографические сайты, неонацисткие ресурсы и прочее), то вы можете перекрыть его с помощью страницы 403 (запрет доступа). Нужно, чтобы был включен mod_rewrite (обычно он включен). Добавляем код:

Нужно заменить bannedurl1.com и bannedurl2.com на имена доменов из вашего черного списка. Флаг [NC] указывает на отсутствие чувствительности к регистру в имени домена, а флаг [F] определяет действие — в нашем примере вывод страницы 403. Если нужно забанить несколько сайтов, используйте флаг [NC,OR] для каждого домена, включая последний. Для запрета только одного домена можно использовать только флаг [NC].

 

6. Блокирование запросов от определенных агентов

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

Замените badbot1, badbot1 и так далее именами агентов из вашего журнала. Такое действие будет держать данные программы подальше от вашего сайта.

 

7. Кеширование файлов

Другой метод ускорения загрузки вашего сайта — кеширование файлов. вот что нужно добавить в файл .htaccess для включения кеширования:

Вы можете добавить типы файлов (или удалить некоторые из них) к списку в примере. Также можно использовать max-age для указания времени в секундах, для хранения ваших файлов в кеше.

 

8. Отключение кеширования для определенных типов файлов

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

Просто добавьте типы фалов, которые не нужно кешировать в список.

 

9. Пропускаем диалог загрузки

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

 

10. Переименование файла .htaccess

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

Также нужно обновить всех вхождения в самом файле и там, где упоминается .htaccess, иначе возникнет масса ошибок.

 

11. Изменение индексной страницы по умолчанию

Если вам требуется, чтобы индексная страница отличалась от значения по умолчанию, index.html, index.php, index.htm и так далее, то данная задача решается легко. Вот что нужно добавить в файл .htaccess:

Замените mypage.html на адрес URL нужной страницы.

 

12. Перенаправление на безопасное соединение https

Если вы используете https и хотите, чтобы все пользователи перенаправлялись на него, то вам поможет следующий код:

 

13. Ограничение размера файла загрузки в PHP, максимального размера запроса и максимального времени выполнения скрипта

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

Конечно, вы можете установить значение, которое требуется, в нашем примере 15M (MB) не является фиксированным. Также можно ограничить максимальны размер запроса для загрузки в PHP:

Измените 10M на то значение, которое вам требуется.

Если вы не хотите, чтобы скрипт выполнялся вечно, то можно ограничить время его работы:

240 — количество секунд до прерывания работы скрипта.

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

 

14. Маскировка типов файлов

Иногда нужно скрыть от пользователя типы файлов на сервере. Один из способов решить задачу — замаскировать их. Например, вы можете сделать так. что все файлы будут выглядеть как HTML или PHP:

 

Заключение

Существует еще множество задач, которые может решить .htaccess. Например, можно установить автоматический перевод страниц сайта, или временную зону, или удалить www из адреса URL, и многое другое. Но прежде чем  начать эксперименты с .htaccess всегда нужно сделать резервную копию оригинала, чтобы была возможность вернуться к исходному коду.

ruseller.com

Deny from all

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

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

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

Итак, полезные примеры использования. htaccess:

1. Управление доступом к файлам и каталогам

Защита паролем — это одно, но иногда может понадобиться полностью блокировать доступ пользователей к определенному файлу или папке. Обычно это относится к системным папкам, таким, например, как includes, доступ к которым должны иметь приложения, но не пользователи.

Чтобы сделать это, поместите данный код в файл. htaccess и сохраните его в каталоге к которому закрываете доступ:

deny from all 

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

order deny,allow  deny from all  allow from xxx.xxx.xxx.xxx 

где xxx. xxx. xxx. xxx — это ваш IP. Для задания разрешенных диапазонов IP-адресов вы можете заменить три последние цифры. Например, написав вместо них «0/12», вы зададите диапазон IP-адресов одной сети, что избавит вас от необходимости вводить в список все разрешенные IP-адреса отдельно.

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

<Files .htaccess>  order allow,deny  deny from all  </Files> 

Если вы хотите указать определенные IP-адреса которым надо запретить доступ, перечислите их при помощи allow from.

Если же вы хотите заблокировать доступ к файлам определенного типа, используйте этот код:

<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">  Order Allow,Deny  Deny from all  </FilesMatch> 

2. Запрет на просмотр директорий

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

Options All -Indexes 

Если же по какой-то причине вы хотите разрешить просмотр всех директорий, используйте код:

Options All +Indexes 

3. Ускорение времени загрузки за счет сжатия файлов

Сжимать можно файлы любого типа. Например, для сжатия HTML-файлов добавьте код:

AddOutputFilterByType DEFLATE text/html 

Для сжатия текстовых файлов используйте:

AddOutputFilterByType DEFLATE text/plain 

Вы также можете сжать JavaScript или включить сжатие для других различных типов файлов командами:

AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml 

Кроме того, вы можете сжать все ваши JavaScript, HTML и CSS файлы при помощи GZIP. Для этого используйте следующий код:

<IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js|php|pl)$  mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*  </IfModule> 

4. Защита сайта от вставки изображений с других ресурсов

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

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC] RewriteRule .(jpg|jpeg|png|gif)$ - [NC,F,L] 

Не забудьте заменить yourdomain.com на имя вашего домена.

5. Блокировка посетителей, перешедших с определенного домена

Если вы не хотите видеть на своем сайте пользователей с конкретного домена, то вы можете запретить им доступ. Например, пользователей с нежелательных ресурсов (сайты для взрослых, хакерские сайты и т. д.) вы можете перенаправлять на страницу 403 Forbidden. Для этого необходимо включить mod_rewrite, хотя, как правило, он включен по умолчанию. Добавьте в .htaccess код:

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} bannedurl1.com [NC,OR] RewriteCond %{HTTP_REFERER} bannedurl2.com [NC,OR] RewriteRule .* - [F] </ifModule> 

Вам необходимо заменить bannedurl1.com и bannedurl2.com доменами, которые вы хотите внести в черный список. Вы можете использовать флаг [NC], указывающий, что введенное доменное имя нечувствительно к регистру. Флаг [F] указывает на тип действия, в данном случае — отображение ошибки 403 Forbidden. Если вы хотите запретить несколько сайтов, используйте флаги [NC, OR] для каждого домена, если же вы хотите запретить использование одного домена — используйте только флаг [NC].

6. Блокирование запросов от определенных браузеров

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

RewriteEngine On  RewriteBase /  SetEnvIfNoCase Referer "^$" bad_user SetEnvIfNoCase User-Agent "^badbot1" bad_user SetEnvIfNoCase User-Agent "^badbot2" bad_user SetEnvIfNoCase User-Agent "^badbot3" bad_user Deny from env=bad_user 

Замените badbot1, badbot1 и т. д. именами ботов из вашего журнала. Это закроет посторонним программам доступ к вашему сайту.

7. Кэширование файлов

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

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> 

Вы можете добавить больше типов файлов (или удалить некоторые из них) в перечисленныq в данном примере список файлов. Вы также можете указать время сохранения файлов в кэше (в секундах) при помощи переменной max-age.

8. Отключение кэширования для разных типов файлов

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

 <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> 

Просто укажите типы файлов, для которых нужно отключить кэширование.

9. Обход диалога загрузки

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

AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mp3 

10. Переименование файла .htaccess

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

AccessFileName htac.cess 

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

11. Замена стартовой страницы сайта

Если вы хотите установить главную страницу, отличную от стандартной (index.html, index.php, index.htm и т. д.), добавьте следующий код в файл .htaccess:

DirectoryIndex mypage.html 

Замените mypage.html на URL страницы, которую вы хотите использовать в качестве главной.

12. Перенаправление на защищенное соединение HTTPS

Если вы используете HTTPS и хотите перенаправить пользователей на защищенные страницы вашего сайта, добавьте в файл .htaccess следующие строки:

RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

13. Ограничение максимального размера загружаемых файлов в PHP, максимального размера передаваемых данных, максимального времени выполнения скриптов и т.п.

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

php_value upload_max_filesize 15M 

Вы можете установить любое значение, в примере размер файла ограничен 15M (MБ). Помимо этого вы можете ограничить максимальный размер передаваемых при загрузке в PHP данных:

php_value post_max_size 10M 

Вы можете заменить 10М на любое требуемое вам значение. Если вам не требуется постоянное выполнение скриптов, вы можете ограничить время их выполнения с помощью строки:

php_value max_execution_time 240 

240 — время выполнения (в секундах), после которого скрипт будет остановлен, вы можете изменить это значение на любое другое. Наконец, если вы хотите ограничить время анализа скриптом исходных данных, используйте следующий код:

php_value max_input_time 180 

Установите вместо 180 любое требуемое вам время (в секундах).

14. Скрытие типов файлов

Иногда нужно, чтобы пользователи не знали, какие типы файлов находятся на вашем сайте. Один из способов скрыть эту информацию — сделать так, чтобы все ваши файлы отображались как HTML или PHP файлы:

ForceType application/x-httpd-php ForceType application/x-httpd-php 

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

Источник

UPD (спасибо akuma) расширение РНР для скрытия формата файлов приведено как пример и использование этого трюка в реальном проекте может оказаться небезопасным

habr.com


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector