» » Полезные советы по настройке файла .htaccess

Полезные советы по настройке файла .htaccess

Полезные советы по настройке  файла .htaccessЕсли вы хотя бы какое-то время работали в качестве веб-дизайнера, то наверняка сталкивались с мистическим файлом под названием «.htacess». Некоторые задаются вопросом, что же такое ht, и почему нам нужен доступ к нему (примечание: «access» в переводе означает «доступ»). Будь вы новичками или профессионалами, важно знать, что понимание файла htaccess поможет вам повысить производительность веб-сайта, обезопасить сего и многое другое.

Полезные советы по настройке  файла .htaccess


Название файла htaccess расшифровывается как «hypertext access» (доступ к гипертексту), и он представляет собой файл конфигурации, расположенный в корневом каталоге вашего веб-сайта, и позволяет выставлять настройки сервера. В wordpress одна из ключевых задач данного файла заключается в том, чтобы помочь серверу легче распознать и запустить CMS. Но давайте разузнаем, чем же еще нам может помочь этот небольшой клочок кода. Новичок вы или профессионал, ВСЕГДА создавайте резервную копию файла, перед тем как его править.

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

Хотя иногда бывает очень удобно разрешить пользователям просматривать директории, оставлять их открытыми для всех ведёт за собой определенные риски и последствия. Запретить просмотр директорий можно очень просто, добавив строку кода в файл htaccess где-то между “# BEGIN WordPress” и “# END“:

Options All -Indexes


02. Предотвращение хотлинкинга

Текстовые пираты, которые копируют контент вашего веб-сайта довольно плохие личности ввиду нескольких причин, но те, кто воруют изображения, также вам не друзья, хотя они по сути и не воруют их, а просто ссылаются на них ли публикуют на своих сайтах, используя ресурсы вашего хостинга. Опять же, с точки зрения безопасности, и для того, чтобы предотвратить расход пропускных возможностей вашего хостинга, лучше запретить использовать ваши изображения. Это можно сделать, добавив в файл htaccess следующий код (заменив “mywebsite.com” на ваш собственный домен).

RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?mysite.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]


03. Отображение собственной страницы в случае ошибки

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

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


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

04. SEO-оптимизированное перенаправление 301 (редирект)

Каждый раз, когда вы изменяете URL-структуру вашего веб-сайта (во время обновления дизайна или при переезде на другой сервер), вам скорее всего понадобится позаботиться о перенаправлении. Просто добавьте следующий код со старыми адресами страниц, за которыми следуют новые. Это позволит вам сохранить рейтинги страниц.

Redirect 301 http://www.mysite.com/article.html http://www.mysite.com/archives/article


05. Блокировка нежелательных гостей с ссылающихся доменов

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

RewriteEngineon
RewriteCond %{HTTP_REFERER} wearespammers.com [NC]
RewriteCond %{HTTP_REFERER} subdomain.wearespammers.com [NC]
RewriteCond %{HTTP_REFERER} baddomain. [NC]
RewriteRule .* - [F]


Первая строка код проверяет, не пришел ли трафик с сайта вроде wearespammers.com, а вторая проверяет субдомены, а третья определяет доменную зону (.org, .net. и т.д.).

06. Блокировка посетителей с определенных IP-адресов

Вы также можете заблокировать определенные IP-адреса. Следующий код, например, блокирует трафик с 145.177.12.119 и субдомены блокированного IP 012.43.4.

allow from all
deny from 145.177.12.119
deny from 012.43.4.


07. Позволяет выставить доступ только конкретным IP-адресам

Используя следующий код, вы можете позволить посещать веб-сайт только с конкретных IP-адресов.

orderdeny,allow
deny from all
allow from 123.456.789.012
allow from 496.742.011


Данный код запрещает доступ всем посетителям, за исключением IP-адреса 123.456.789.012, либо диапазона 496.742.011.xxx.

08. Изменение исходной страницы директории

Хотите загружать страницу отличную от index.php или index.html при первой загрузке сайта? Тогда вам нужно добавить следующую строку в ваш htaccess-файл.

Directory Indexnewpage.html


09. Определение предела загрузки для PHP

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

php_value upload_max_filesize 30M
php_value post_max_size 30M
php_value max_execution_time 400
php_value max_input_time 400


10. Принудительное кэширование файлов

Вы можете ускорить работу вашего веб-сайта для тех пользователей, кто уже посещал ваш сайт ранее, если контент ваших страниц не изменялся с тех пор. Следующий код выставляет три разных промежутка времени для различных типов файлов (всё время указано в секундах).

# 1 year
<filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=31536000, public"
</filesMatch>
# 2 days
<filesMatch ".(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 2 hours
<filesMatch ".(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</filesMatch>


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

11. Добавляем слеш

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

<IfModulemod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>


12. Добавляем заголовки со сроком истечения

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

<ifModulemod_expires.c>
ExpiresActiveOn
ExpiresByType text/html "access plus 2 days" 
ExpiresByType image/gif "access plus 60 days"
ExpiresByType image/jpg "access plus 60 days"
ExpiresByType image/png "access plus 60 days" 
ExpiresByType application/x-javascript "access plus 60 days"
ExpiresByType text/css "access plus 60 days"
ExpiresByType image/x-icon "access plus 360 days"
</IfModule>


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

13. Защита директорий паролем

Сначала вам нужно будет создать файл под названием “.htpasswd”, и разместить его выше корневого каталога, чтобы он не был доступен по http://mydomainname.com/.htpassword. В этом файле вы можете указать информацию о пароле для вашего сайта:

username1:password1
username2:password2


Далее создайте новый файл “.htaccess” и загрузите его в директорию, которую хотите заблокировать, и внесите туда следующий код:

AuthUserFile /path/to/htpasswd/file/.htpasswd
AuthGroupFile /dev/null
AuthName "name of directory"
AuthType Basic
require valid-user


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

require user username1


14. Защита отдельных файлов паролем

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

AuthUserFile /path/to/htpasswd/file/.htpasswd
AuthName "Name of Page"
AuthType Basic
<Files "thepage.html">
require valid-user
</Files>


15. Защита файлов htaccess

Для того чтобы еще больше защитить ваш веб-сайт, нужно защитить файлы htaccess:

<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>


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

16. Отключение отображение запроса на скачивание

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

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


17. Компрессия посредством mod_deflate

Можно повысить скорость загрузки и скачивания для пользователей посредством модуля mod_deflate в Apache, который сжимает данные до 70%.

<ifmodulemod_deflate.c="">
<filesmatch ".(js|css|.jpg|.gif|.png|.tiff|.ico)$"="">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>


18. Удаление категории из URL

Хотите сократить url http://yourdomain.com/category/apples на простой http://yourdomain.com/apples? Тогда вам нужно воспользоваться следующим кодом:

RewriteRule ^category/(.+)$ http://www.yourdomain.com/$1 [R=301,L]


19. Перевод текста с помощью Google

Хотите, чтобы конкретные страницы вашего веб-сайта можно было перевести на другой язык? Следующий код позволит вам перенаправить страницу в переводчик Google, который определит исходный язык по доменной зоне.

Options +FollowSymlinks
RewriteEngineOn
RewriteBase /
RewriteRule ^(.*)-(fr|de|es|it|pt)$ http://www.google.com/translate_c?hl=$2&sl=en&u=http://site.com/$1 [R,NC]


20. Используем другое расширение файла

Хотите изменить расширение ваших файлов с .php на .wow или что-то в этом роде? Тогда вам понадобится следующий код:

Options +FollowSymlinks
RewriteEngineOn
RewriteBase /
RewriteRule ^(.+).zig$ /$1.php [NC,L]


21. Исключение расширения файла

Данный код позволит вам скрыть расширения файла.

Options +FollowSymlinks
RewriteEngineOn
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php –f
RewriteRule ^(.+)$ /$1.php [L,QSA]{REQUEST_FILENAME}.php –f
RewriteRule ^(.+)$ /$1.php [L,QSA]
Ключевые теги: htaccess





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

КОММЕНТАРИИ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Быстрый вход: 

ВОЗМОЖНО ВАС ЭТО ЗАИНТЕРЕСУЕТ

Информация
Комментировать статьи на сайте возможно только в течении 90 дней со дня публикации.