Htaccess (с точкой в начале имени) – это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок.
Как известно, конфигурационные директивы сервера Apache находятся в файлe httpd.conf. Но далеко не всегда у Вас будут права доступа к этому файлу. Например, если Вы используете для хостинга виртуальный сервер, когда один сервер Apache обслуживает множество сайтов, то, естественно, Вам никто не позволит менять его конфигурацию. Но, тем не менее, вы можете конфигурировать работу сервера в своих директориях. И делать вы это можете с помощью файлов.htaccess.
Файл.htaccess может быть размещен в любом каталоге. Директивы этого файла действует на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов.htaccess).
Изменения, вносимые в файлы.htaccess, вступают в силу немедленно и не требуют перезагрузки сервера, в отличие от изменений, вносимых в главный конфигурационный файл httpd.conf.
Настройки httpd.conf, разрешающие применение файлов.htaccess
Для того, что бы эти файлы.htaccess можно было использовать - необходимы соответствующие настройки главного конфигурационного файла. В файле httpd.conf должны быть прописаны директивы, которые разрешат файлу.htaccess переопределять конфигурацию web-сервера в каталоге. Эта директива называется AllowOverride. Она может быть установлена как для всего сервера (глобально), так и для отдельного каталога.
Директива AllowOverride может включать в себя одну из следующих директив или их комбинацию: All, None, AuthConfig, FileInfo, Indexes, Limit, Options .
Для того чтобы дать директивам файлов.htaccess максимальные права следует прописать в httpd.conf:
AllowOverride All
Примечание
При желании название конфигурационного файла можно изменить, и например, назвать его не.htaccess, a access.conf. За название этого файла отвечает директива AccessFileName в файле httpd.conf. Но все же рекомендуется этого не делать.
Синтаксис.htaccess
Перед тем, как будут рассмотрены примеры, остановимся на синтаксисе директив в файлах.htaccess.
- Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server1/html/
Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо можете посмотреть сами, запустив на сайте функцию PHP - phpinfo(). Она выведет на экран конфигурацию PHP в виде фиолетовых таблиц. В них Вам необходимо найти переменную doc_root и посмотреть ее значение - это будет путь от корня сервера до Вашей основной директории.
- В именах доменов обязательно должны быть указаны протоколы, например:
Примеры использования.htaccess
Глобальное перенаправление (редирект) на другой адрес:
Redirect / http://www.newsite.ru
Перенаправление (редирект) только при запросе определенных страниц:
redirect /company
http://www.newsite.com/newcompany
redirect /forum
http://www.newsite.com/newforum
При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса.
Перенаправление (редирект) только посетителей с определенным IP-адресом:
SetEnvIf REMOTE_ADDR
192.145.121.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule
^/$ /only_for_you.html
Если посетитель имеет IP-адрес 192.145.121.1, то ему будет открыта страница only_for_you.html.
Изменение названия индексной страницы:
DirectoryIndex index.html index.php index.shtml
Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html, то будет произведен поиск файла index.php и т.д.
Выполнять код PHP в файлах HTML
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Добавив эти строки в.htaccess вы дадите директиву серверу выполнять инструкции PHP не только в файлах с расширением *.php и *.phtml, но и в файлах с расширением *.htm и *.html.
Обработка ошибок Apache
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
При возникновении этих ошибок посетитель будет перенаправлен на специально созданные страницы.
- 401 ошибка - Требуется авторизация (Authorization Required).
- 403 ошибка - пользователь не прошел аутентификацию, доступ запрещен (Forbided).
- 404 ошибка - Документ не найден (Not Found).
- 500 ошибка - Внутренняя ошибка сервера (Internal Server Error).
Запрет на отображение содержимого каталога при отсутствии индексного файла
Options –Indexes
Определение кодировки, в которой сервер "отдает" файлы
AddDefaultCharset windows-1251
Определение кодировки на загружаемые файлы
CharsetSourceEnc windows-1251
Запрет доступа ко всем файлам
deny from all
Запрещен доступ ко всем файлам и каталогам в текущей директории.
Разрешить доступ только с определенного IP-адреса
order deny,allow
deny from
all
allow from 195.135.232.70
Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 195.135.232.70. Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыть, так как директива deny, выполняемая последней перекроет действия директивы allow.
Запретить доступ с определенного IP-адреса
deny from 195.135.232.70
Запретить доступ к определенному файлу
deny from all
Запрещен доступ посетителей к файлам config.php. Этот запрет не действует на скрипты web-сервера. Они по прежнему будут иметь доступ к этому файлу.
Если вас интересует, как заблокировать доступ по IP к сайту нежелательным личностям, спамерам и прочим, то вам надо создать или отредактировать файл .htaccess и воспользоваться синтаксисом Order Allow,Deny либо Order Deny,Allow . Между ними есть разница:
- Order Allow,Deny
Сначала обработаются разрешающие правила Allow , потом запрещающие Deny , а всё, что не попадает под них, будет запрещено; - Order Deny,Allow
Сначала будут обработаны запрещающие правила Deny , потом разрешающие Allow , а все, что не попадут под них, будут разрешены по умолчанию.
Обратите внимание на синтаксис, никаких лишних пробелов, иначе можно вызвать ошибку 500 Internal Server Error
Если это касается всего сайта, файл создаётся в корне, если нужно закрыть лишь определённую его часть, например, админку, файл.htaccess должен располагаться непосредственно в этом разделе.
Ну, и конечно же, ваш сервер (бекенд или рабочий) должен быть . Если ваш рабочий сервер + php-fpm, то править придётся конфигурационный файл nginx.
Забанить спамера по IP диапазону
Order Deny,Allow Deny from 192.168.1.1Это был пример того, как забанить IP (192.168.1.1) спамера, не закрывая доступа всем остальным. Ещё можно пропустить последний октет IP-адреса, Deny from 192.168.1 , тогда будут забанены все пропущенные IP адреса. Однако, вы же понимаете, статичный IP блокировать глупо, он, скорее всего, динамический, поэтому мы берём IP и отправляемся определять подсеть с диапазоном IP, откуда он пришёл. Для этого воспользуемся любым Whois-сервисом, например, этим , ищем строку CIDR или, если её нет, NetRange
Запретить доступ в админку
Чтобы запретить доступ в админку всем, кроме вашего IP, в htaccess, который должен располагаться в разделе админки, нужно прописать:
Order Allow,Deny Allow from 192.168.0.0/16
Где 192.168.0.0/16 — ваш IP или подсеть
Вот, скажем, вариант для WordPress. Файл.htaccess создаётся в /wp-admin/
Обратите внимание, тут используется конструкция Files "admin-ajax.php" . Она необходима для того, чтобы проходили ajax запросы.
Запретить доступ к файлам по IP
Вот пример, как можно защитить админку WordPress от посягательств хакеров. Здесь используется конструкция FilesMatch "регулярное выражение"
.htaccess - это документ, который управляет доступом к различным файлам и папкам на сайте, а также сайтом в целом. При переходе на страницу, к которой закрыт доступ по.htaccess , пользователь увидит служебную страницу с кодом ошибки 404.
Как редактировать.htaccess
Как заблокировать доступ к сайту для всех
Чтобы полностью закрыть доступ к сайту, допишите в.htaccess :
deny from all # Запрещает доступ к сайту всем IP адресамКак разрешить доступ к сайту только определенному IP
Чтобы полностью закрыть сайт для всех IP кроме одного, допишите в.htaccess :
deny from all # Запрещает доступ к сайту всем IP адресам allow from XXX.XXX.XXX.XXX # Открывает доступ для указанного IP. Если IP много, разделяйте их пробелом.Как запретить доступ к сайту только определенному IP
Чтобы полностью закрыть доступ к сайту для одного IP, допишите в.htaccess :
deny from XXX.XXX.XXX.XXX # Закрывает доступ для указанного IP. Если IP много, разделяйте их пробелом.Как управлять доступом к определенному файлу
Если вы хотите, чтобы для разных файлов на сайте были разные настройки доступа, вы можете воспользоваться командой
Таким же образом можно закрыть доступ и к самому.
Внимание!
Надеюсь, вы догадаетесь сделать копию существующего файла .htaccess
, а уж потом будете производить свои эксперименты.
Если вам не понравится результат своего творчества, просто верните старый на место.
Пусть это будет вспомогательный файл, перегруженный может тормозить сервер.
Генератор.htaccess
.htaccess
Файл.htaccess содержит пользовательские настройки web-сервера и анализируется при каждом запросе на сервер.На виртуальном хостинге чаще всего используется для:
- паролирования директорий,
- переадресации страниц,
- настройки собственных страниц ошибок,
- определения кодировки,
- запреты и разрешения,
- и др.
С помощью него можно переопределить многие директивы из файла httpd.conf (главный конфигурационный файл сервера Апач).
Если файл.htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех папок, где находится другой файл.htaccess.
Редактор
Создать файлы.htaccess можно в Блокноте или встроенном редакторе Far, WindowsCommander, TotalCommander.Я его редактирую с Notepad++ или Akelpad, которые использую для написания этого сайта.
Кодировка
Как выставить русскую кодировку. AddDefaultCharset utf-8Определение кодировки на определенные типы файлов AddType "text/html; charset=koi8-r" .html .htm .shtm Определение кодировки на загружаемые файлы CharsetSourceEnc utf-8 Отключение перекодировки если при загрузке скриптом не загружаются (бьются) бинарные файлы (картинки, архивы), создайте файл.htaccess и поместите его папку, где вы хотите отключить функцию, в нем пропишите строчку: CharsetRecodeMultipartForms off
AddDefaultCharset UTF-8
Назначение стартовой страницы. DirectoryIndex index.html Можно указывать несколько страниц. DirectoryIndex index.html index.php index.shtml map.html При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html, то будет произведен поиск файла index.php и т.д.
Разрешение/запрет
разрешить доступ с определенного ip. order allow denydeny from all
allow from 000.000.000.000 запретить доступ с определенного ip. order allow deny
allow from all
deny from 000.000.000.000 запретить просмотр всем. deny from all разрешить просмотр всем. allow from all Запретить доступ к определенному файлу.
deny from all
deny from all
deny from all
* - любая последовательность символов, исключая символ / (слеш). Тонкая настройка доступа. Есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ только к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз - при доступе к a1, но при этом соблюдать права на доступ к а2 и а3.
Ник и пароль запрашиваются только при входе на а1 - если у юзера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка "введите пароль". www.site.ru/a1
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 - общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей. файл.htaccess для каталога а1: AuthName "Input password"
AuthType Basic
require valid-user
Файл.htaccess для каталога а2:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require user юзер1 юзер2 юзер3
AuthType Basic
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
require user юзер1 юзер4 юзер5
Перенаправление (редирект)
Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server1/html/В именах доменов обязательно должны быть указаны протоколы (http://, http://, ftp://) Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо можете посмотреть сами, запустив на сайте функцию PHP - phpinfo() . Она выведет на экран конфигурацию PHP в виде фиолетовых таблиц. В них Вам необходимо найти переменную doc_root и посмотреть ее значение - это будет путь от корня сервера до вашей основной директории. Перенаправление (редирект) только при запросе определенных страниц. Redirect /location/from/root/file.ext http://www.serv.ru/new/file/location.xyz /location/from/root/file.ext - это путь до корневого файла (до нужного файла). www.serv.ru/new/file/location.xyz это место, куда попадет пользователь сделав запрос на файл file.txt. Если файл лежит в корневом каталоге, то вместо location/from/root/ можно сразу поставить: /oldfile.html ну и если файл в субкаталоге, то будет выглядеть так: /old/oldfile.html Редирект на папку (напр. папка oldfolder). Redirect /oldfolder http://www.serv.ru/newfolder запрос на www.oldserv.ru/oldfolder/images/smile.gif ,
попадет на www.serv.ru/newfolder/images/smile.gif . Глобальное перенаправление (редирект) на другой адрес. Redirect / http://www.newsite.ru Перенаправление (редирект) только посетителей с определенным IP-адресом. SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /only_for_you.html
Убираем WWW
Дело в том, что люди могут набирать адрес вашего сайта по-привычке с WWW. или экономя время без WWW.Для Яндекса и Google http://your-site.com и http://www.your-site.com - разные сайты. И у вас, как следствие будет заниженный индекс цитирования. Это решается следующим кодом. Если вы хотите, чтобы ваш адрес был всегда с WWW. (привычнее), то код: RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^your-site.com$
RewriteRule ^(.*)$ http://www.your-site.com/$1 Вместо your-site.com пишем свой адрес.
Пароль
Защита паролем. AuthName "Section Name" AuthType Basic AuthUserFile /full/path/to/.htpasswd Require valid-user Вам надо изменить для своего сайта. Например, поменять Section Name на своё название (к примеру - Members area). /full/path/to/.htpasswd - полный путь до файла.htapasswd (об этом чуть позже). Если вы не знаете полного пути, то обратитесь к системному администратору. Файл.htpasswd Чтобы защитить директорию паролем, надо создать файл содержащий логины и пароли, которым разрешено будет посещать сайт. И вписать в файл.htpasswd. Создание имен пользователей и паролей. Вписываем имена пользователей и пароли след. образом: username:password пароль (password) зашифрованная версия пароля.Чтобы зашифровать.htpasswd файл, вам нужно будет воспользоваться готовым скриптом, или самому написать его. Если вам нужно несколько пользователей, то пишите построчно их. Как только вы заходите в защищенную паролем директорию, у вас всплывет pop-up окно для ввода логина и пароль. А можно просто вписать в поле адреса: username:[email protected]/directory
Ускоряем сайт с помощью gzip
Это сжатие уменьшает размер ваших файлов, и как следствие сокращает траффик у посетителя, ваш сайт быстрее открывается. Но это подойдет только для небольших и средний сайтов, потому что вы повышаете нагрузку на сервер. AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xmlapplication/xhtml+xml text/JavaScript text/css application/x-JavaScript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Как заставить Апач обрабатывать SSI директивы?
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видеть обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с
и после, в файле.htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm
Чтобы пользователь не видел список файлов в папке, при отсутствии в ней индексного файла, добавим строчку:
Options -Indexes
Выполнение php кода в файлах с другим расширением.
Иногда бывает полезно "обмануть" посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов.
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Заметьте, так как файлам с расширением.html и.htm сопоставлено, что это файлы с гипертекстовой разметкой, то мы первой строкой убираем это сопоставление и добавляем обработку таких файлов php интерпретатором.
При большой посещаемости сервера такие ухищрения могут вызвать тормоза. Спрашивайте у админа.
Error 404 ...
Если не будет файла, сообщающего об ошибке, то посетитель увидит содержимое вашего сайта, как в проводнике.
Наверное, вы встречали картину подобную представленной ниже:
Можно создать специальный файл, где будут ссылки на ваш сайт, а не на хостера.
Назвать его 404.html и поместить в корневую директорию.
Величина страницы с ошибкой должна быть больше 511 байтов, иначе Internet Explorer может показать собственную страницу с описанием ошибки.
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 401 /401.html
ErrorDocument 500 /500.html
Можно указать другой файл, который автоматически откроется при появлении ошибки.
Карта сайта - является идеальным файлом для обработки ошибки error 404 (файл не найден).
ErrorDocument 404 /map.html
register_globals
Если у вас не работает почтовая форма, возможно не включен register_globals, тогда добавьте строчку:
php_flag register_globals on
Или php_flag register_globals off
если вы хотите отключить.
ПРИНУДИТЕЛЬНАЯ ЗАКАЧКА ОПРЕДЕЛЕННЫХ ФАЙЛОВ
Можно некоторые файлы (MP3, EPS, XLS ...), предназначенные для скачивания принудительно скачивать, а не позволить браузеру решить, что делать. То есть, принять решение за него.Этот фрагмент кода заставит загрузку и.xls файлы.eps с вашего сервера.
ForceType application/octet-stream
Header set Content-Disposition attachment
ЗАЩИТА ОТ ХОТЛИНКОВ
Хотлинк (hotlink) - это когда ставят прямую ссылку на ваше содержание с другого сайта.Часто такая ситуация нежелательна, вы же не хотите оплачивать трафик другого сайта, и для ее избежания используется: SetEnvIfNoCase Referer "^http://www.test.com" local_ref=1
SetEnvIfNoCase Referer "^http://test.com" local_ref=1
Order Allow,Deny
Allow from env=local_ref
RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$
RewriteRule .*\.(gif|jpg)$ - [F]
RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$
RewriteRule ^inlined-in-foo\.(gif|jpg)$ - [F] Еще вариант: RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don"t hotlink" image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
Файл.htaccess — один из тех файлов, которые должен быть известен и понятен каждому администратору веб сайта. На базовом уровне он управляет доступом к папкам сайта. Но есть еще много задач, которые htaccess может решить для вас.
1. Управление доступом к файлам и каталогам
Защита паролем - это один аспект вопроса, но иногда нужно полностью блокировать пользователю возможность доступа к определённым файлам или каталогам. Такие задачи обычно возникают для системных папок, например, includes . Приложение должно иметь доступ к ним, а пользователь лишается всех привилегий.
Для решения задачи добавьте следующий код в файл.htaccess и сохраните его в нужном каталоге:
Но такой ход блокирует доступ для всех, включая вас. Чтобы обеспечить себе доступ нужно указать IP свой адрес. Вот код:
Order deny,allow deny from all allow from xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx - ваш IP адрес. Если заменить последние три цифры на 0/12 , например, то будет указан диапазон IP адресов в одной сети. Но такой подход может привести к проблемам, поэтому лучше указывать список IP адресов раздельно.
Если нужно блокировать определенный файл, включая сам.htaccess , используйте следующий код:
Аналогично, если вам требуется открыть доступ с определенных IP адресов, перечислите их с помощью allow from .
Если нужно блокировать доступ к определённым типам файлов, используйте следующий код:
2. Запрещаем просмотр директории
Для запрещения просмотра содержимого директории используйте следующий код:
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
В качестве альтернативы можно сжимать все HTML, JavaScript, CSS и прочие файлы с помощью GZIP:
4. Защищаем сайт от хотлинкинга
Если вы хотите предотвратить хотлинкинг изображений с вашего сайта, добавьте следующие строки в файл.htaccess:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?вашдомен.ru RewriteRule \.(jpg|jpeg|png|gif)$ -
Просто замените вашдомен.ru на название своего домена.
5. Блокирование пользователей перенаправленных с определенного домена
Если вы не приветствуете пользователей определенного домена, то можно забанить на своем сайте. Например, если ваш сайт попал в список там, откуда не желателен трафик (например, порнографические сайты, неонацисткие ресурсы и прочее), то вы можете перекрыть его с помощью страницы 403 (запрет доступа). Нужно, чтобы был включен mod_rewrite (обычно он включен). Добавляем код:
Нужно заменить bannedurl1.com и bannedurl2.com на имена доменов из вашего черного списка. Флаг указывает на отсутствие чувствительности к регистру в имени домена, а флаг [F] определяет действие - в нашем примере вывод страницы 403. Если нужно забанить несколько сайтов, используйте флаг для каждого домена, включая последний. Для запрета только одного домена можно использовать только флаг .
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
7. Кеширование файлов
Другой метод ускорения загрузки вашего сайта - кеширование файлов. вот что нужно добавить в файл.htaccess для включения кеширования:
Вы можете добавить типы файлов (или удалить некоторые из них) к списку в примере. Также можно использовать max-age для указания времени в секундах, для хранения ваших файлов в кеше.
8. Отключение кеширования для определенных типов файлов
Если вам не нужно кешировать определенные типы файлов, то можно просто не включать их в список. Однако, иногда файлы могут кешироваться даже если вы не объявили их в списке. В таких случаях можно отключить кеширование только для таких типов файлов. В большинстве случаев требуется отключать кеширование для динамических файлов, таких как скрипты. Вот код:
Просто добавьте типы фалов, которые не нужно кешировать в список.
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 и хотите, чтобы все пользователи перенаправлялись на него, то вам поможет следующий код:
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
13. Ограничение размера файла загрузки в PHP, максимального размера запроса и максимального времени выполнения скрипта
Htaccess позволяет устанавливать некоторые значения, которые влияют на приложения PHP. Например, если вам требуется ограничить загрузку в PHP по причине экономии пространства на хостинге, используйте следующий код:
Php_value upload_max_filesize 15M
Конечно, вы можете установить значение, которое требуется, в нашем примере 15M (MB) не является фиксированным. Также можно ограничить максимальны размер запроса для загрузки в PHP:
Php_value post_max_size 10M
Измените 10M на то значение, которое вам требуется.
Если вы не хотите, чтобы скрипт выполнялся вечно, то можно ограничить время его работы:
Php_value max_execution_time 240
240 - количество секунд до прерывания работы скрипта.
Если требуется ограничить время для скрипта на разбор введенных данных, используйте следующую строку:
Php_value max_input_time 180
14. Маскировка типов файлов
Иногда нужно скрыть от пользователя типы файлов на сервере. Один из способов решить задачу - замаскировать их. Например, вы можете сделать так. что все файлы будут выглядеть как HTML или PHP:
ForceType application/x-httpd-php ForceType application/x-httpd-php
Заключение
Существует еще множество задач, которые может решить.htaccess . Например, можно установить автоматический перевод страниц сайта, или временную зону, или удалить www из адреса URL, и многое другое. Но прежде чем начать эксперименты с.htaccess всегда нужно сделать резервную копию оригинала, чтобы была возможность вернуться к исходному коду.