.htaccess (Hypertext Access file) файлы являются очень мощным инструментом по конфигурации веб-сервера Apache. Сервер Apache Web имеет множество опций настройки, которые доступны для администратора сервера. .htaccess это простой текстовый ASCII файл, размещенный на веб-сайте в корневом каталога. Вы можете создавать и редактировать .htaccess файлы с помощью любого текстового редактора.
Перед тем, как рассказать о полезных приемах работы с .htaccess, которые я нарыл на просторах интернета, в частности спасибо блогу www.thomsonchemmanoor.com, нужно ввести четкое правило: перед тем как вы делаете какие-либо изменения в .htaccess - обязательно делайте резервные копии файла.
- Настраиваемые страницы ошибок придают вашему сайту профессиональный вид и помогают тем посетителям, которые попадают на ваш сайт по "битым ссылкам". Создание страницы ошибки, с .htaccess на Linux Apache является очень простой задачей. Для этого подойдет любой текстовый редактор, допустим блокнот. В файл .htaccess нужно добавить такие строки:
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
- Как установить часовой пояс на вашем сервере
SetEnv TZ America/Houston
- Блокировка IP-адреса в .htaccess
Иногда вам придется блокировать определенные IP-адреса для доступа к вашему сайту или определенному каталогу. Это довольно простая задачей. Все, что вам нужно сделать, это внутри .htaccess файла прописать следующий код:
allow from all
deny from 145.186.14.122
deny from 124.15
Если вы используете весь IP, то добавляйте строки по типу второй в коде. Если используете диапазон адресов, то задавайте диапазон по типу третьей строки кода, как полные так и диапазоны IP добавляются каждый с новой строки. Когда кто-то пытается получить доступ к сайту с запрещенным IP он получает 403 ошибка доступа.
- Дружественная для SEO 301-я переадресация для постоянных плохих/старых ссылок и ссылок, которые "переехали".
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
- Установить адрес электронной почты администратора сервера. С помощью этого кода вы можете указать адрес электронной почты по умолчанию для администратора сервера.
ServerSignature EMail
SetEnv SERVER_ADMIN default@domain.com
- Защита "хотлинков" в .htaccess очень важна, потому что кто-угодно может использовать прямую ссылку на ваши изображения и "съедать" всю пропускную способность сервера. Следующий код поможет вам предотвратить это.
Options +FollowSymlinks
# Protect Hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/hotlink_f_o.png [nc]
- Запрет на все запросы User Agent. Путем создания списка запрета в .htaccess, можно заблокировать всех нежелательных агентов пользователя, которые будут создавать нежелательную нагрузку на сервер.
## .htaccess Code :: BEGIN
## Block Bad Bots by user-Agent
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
## .htaccess Code :: END
- Переадресация всех к различным сайтам, за исключением нескольких IP. Если вы хотите перенаправлять всех посетителей на другой IP и предоставить доступ посетителям лишь с несколькими IP-адресами, то вы можете использовать следующий код:
ErrorDocument 403 http://www.youdomain.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123
- Запрет загрузки фалов определенного типа. Как правило, при попытке загрузить что-нибудь, нажимая на ссылку, вы получаете сообщение системы с запросом о том сохранить или открыть загружаемый файл.
Чтобы запретить автоматическую загрузку вы можете использовать код приведенный ниже в своем .htaccess файле:
AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov
- Изменить тип файла. Сделать так чтобы любой файл был определенного типа, можно используя код приведенный ниже. В примере любые файлы типа image.jpg, index.html, default.cgi будут выступать в качестве PHP.
<Files test>
ForceType application/x-httpd-php
SetHandler application/x-httpd-php
</Files>
- Блокировать доступ к вашему .htaccess файлу. Добавив следующий код в файле .htaccess вы предотвратите попытки несанкционированного доступа к нему. Этот дополнительный уровень безопасности для защиты .htaccess файлов, отображает 403 сообщение об ошибке в браузере.
# secure htaccess file
<Files .htaccess>
A order allow,deny
A deny from all
</Files>
- Защита доступа к некоторым конкретным файл на вашем сервере. Это может быть сделано путем добавления указанного ниже кода. Например, вы хотите блокировать файл с именем default.jpg? Код ниже позволит избежать просмотра этого файла.
# prevent access of a certain file
<files default.jpg>
A order allow,deny
A deny from all
</files>
- Запретить доступ к несанкционированным просмотром. Защита конкретных каталогов от просмотра может быть сделано путем отдачи сервером сообщений об авторизации или запрещенном доступе, при каждом запросе к запрещенной директории. Как правило, если ваш сайт не имеет индексовой страницы заданной по умолчанию, то все файлы в этом каталоге будут доступны для посетителей. Чтобы избежать этого используйте следующий код в файле .htaccess файле.
# disable directory browsing
Options All -Indexes
- Настройка страницы по умолчанию. Вы можете задать любую страницу для определения по умолчанию в определенной категории. Например, в этом коде страницей сайта по умолчанию устанавливается about.html вместо index.html
# serve alternate default index page
DirectoryIndex about.html
- Защита паролем ваших каталогов и файлов. Вы можете создать аутентификации для для доступа к определенным файлов и директориям. В коде представлены примеры как защиту паролем один файл, и защитить паролем целый каталог.
# защищаем файл
<Files secure.php>
AuthType Basic
AuthName "Prompt"
AuthUserFile /home/path/.htpasswd
Require valid-user
</Files>
# защита паролем директории
resides
AuthType basic
AuthName "This directory is protected"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
- Перенаправление старого домена на новый домен. С помощью .htaccess файла вы можете перенаправить старое имя домена на новый домен. Для этого добавьте следующий код в файле .htaccess.
# redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
В заключении еще раз нужно сказать, что малейшая ошибка в синтаксисе или правилах .htaccess файла может вызвать неисправности сервера. Поэтому важно создавать резервные копии всего, прежде чем пытаться использовать хаки и трюки.
|