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

htaccess

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

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]

 

Надеюсь хоть кому то пригодилась информация.

Читайте также:

Комментарии:

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

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