Полезные приемы в работе с .htaccess
Здравствуйте. Сегодня хотелось бы поговорить о .htaccess Начнем с того, что .htaccess (Hypertext Access file) файлы являются очень мощным инструментом по конфигурации веб-сервера Apache. Сервер Apache Web имеет множество опций настройки, которые доступны для администратора сервера. .htaccess это простой текстовый ASCII файл, размещенный на веб-сайте в корневом каталога. Вы можете создавать и редактировать .htaccess файлы с помощью любого текстового редактора.
Перед тем, как рассказать о полезных приемах работы с .htaccess, которые я нарыл на просторах интернета, в частности спасибо блогу www.thomsonchemmanoor.com, нужно ввести четкое правило: перед тем как вы делаете какие-либо изменения в .htaccess — обязательно делайте резервные копии файла.
1. Настраиваемые страницы ошибок придают вашему сайту профессиональный вид и помогают тем посетителям, которые попадают на ваш сайт по «битым ссылкам». Создание страницы ошибки, с .htaccess на Linux Apache является очень простой задачей. Для этого подойдет любой текстовый редактор, допустим блокнот. В файл .htaccess нужно добавить такие строки:
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php |
2. Как установить часовой пояс на вашем сервере
SetEnv TZ America/Houston |
3.Блокировка IP-адреса с .htaccess
Иногда вам придется блокировать определенные IP-адреса для доступа к вашему сайту или определенному каталогу. Это довольно простая задачей. Все, что вам нужно сделать, это внутри .htaccess файла прописать следующий код:
allow from all deny from 145.186.14.122 deny from 124.15 |
Если вы используете весь IP, то добавляйте строки по типу второй в коде. Если используете диапазон адресов, то задавайте диапазон по типу третьей строки кода, как полные так и диапазоны IP добавляются каждый с новой строки. Когда кто-то пытается получить доступ к сайту с запрещенным IP он получает 403 ошибка доступа.
4. Дружественная для SEO 301-я переадресация для постоянных плохих/старых ссылок и ссылок, которые «переехали».
Redirect 301 /d/file.html http://www.domainname.com/r/file.html |
5. Установить адрес электронной почты администратора сервера. С помощью этого кода вы можете указать адрес электронной почты по умолчанию для администратора сервера.
ServerSignature EMail SetEnv SERVER_ADMIN default@domain.com |
6. Защита «хотлинков» с .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] |
7. Запрет на все запросы 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 |
8. Переадресация всех к различным сайтам, за исключением нескольких 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 |
9. Запрет загрузки фалов определенного типа. Как правило, при попытке загрузить что-нибудь, нажимая на ссылку, вы получаете сообщение системы с запросом о том сохранить или открыть загружаемый файл.
Чтобы запретить автоматическую загрузку вы можете использовать код приведенный ниже в своем .htaccess файле:
AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mov |
10. Изменить тип файла. Сделать так чтобы любой файл был определенного типа, можно используя код приведенный ниже. В примере любые файлы типа image.jpg, index.html, default.cgi будут выступать в качестве PHP.
<Files test> ForceType application/x-httpd-php SetHandler application/x-httpd-php </Files> |
11. Блокировать доступ к вашему .htaccess файлe. Добавив следующий код в файле .htaccess вы предотвратите попытки несанкционированного доступа к нему. Этот дополнительный уровень безопасности для защиты .htaccess файлов, отображает 403 сообщение об ошибке в браузере.
# secure htaccess file <Files .htaccess>  order allow,deny  deny from all </Files> |
12. Защита доступа к некоторым конкретным файл на вашем сервере. Это может быть сделано путем добавления указанного ниже кода. Например, вы хотите блокировать файл с именем default.jpg? Код ниже позволит избежать просмотра этого файла.
# prevent access of a certain file <files default.jpg>  order allow,deny  deny from all </files> |
13. Запретить доступ к несанкционированным просмотром. Защита конкретных каталогов от просмотра может быть сделано путем отдачи сервером сообщений об авторизации или запрещенном доступе, при каждом запросе к запрещенной директории. Как правило, если ваш сайт не имеет индексовой страницы заданной по умолчанию, то все файлы в этом каталоге будут доступны для посетителей. Чтобы избежать этого используйте следующий код в файле .htaccess файле.
# disable directory browsing Options All -Indexes |
14. Настройка страницы по умолчанию. Вы можете задать любую страницу для определения по умолчанию в определенной категории. Например, в этом коде страницей сайта по умолчанию устанавливается about.html вместо index.html
# serve alternate default index page DirectoryIndex about.html |
15. Защита паролем ваших каталогов и файлов. Вы можете создать аутентификации для для доступа к определенным файлов и директориям. В коде представлены примеры как защиту паролем один файл, и защитить паролем целый каталог.
# защищаем файл <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 |
16. Перенаправление старого домена на новый домен. С помощью .htaccess файла вы можете перенаправить старое имя домена на новый домен. Для этого добавьте следующий код в файле .htaccess.
# redirect from old domain to new domain RewriteEngine On RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L] |
В заключении еще раз нужно сказать, что малейшая ошибка в синтаксисе или правилах .htaccess файла может вызвать неисправности сервера. Поэтому важно создавать резервные копии всего, прежде чем пытаться использовать хаки и трюки.