—»     —»   Как извлечь больше из вашего файла .htaccess?
  Раздел: Подсказки   Комментариев: 7  

Как извлечь больше из вашего файла .htaccess?



Если вы хотя бы какое-то время работали в качестве веб-дизайнера, то наверняка сталкивались с мистическим файлом под названием «.htaccess». Некоторые задаются вопросом, что же такое 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]
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: файлы
Опубликовал Design FactoRy   Прочитано (раз): 8666   |   Оставлено комментариев: 7
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Комментарий #1: 3 сентября 2012 @ 17:47
Написал: Артур — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Спасибо, очень познавательно!
Комментарий #2: 3 сентября 2012 @ 17:54
Написал: Design FactoRy — группа: Администраторы  
На сайте с: 21.07.2009   |   Публикаций: 3300   |   Комментариев: 500
ICQ: --- не указано ---
Артур, пожалуйста! Рады слышать.
Комментарий #3: 3 сентября 2012 @ 22:37
Написал: acelote — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
очень подробное описание. В сети множество подобных статей, но обычно описание бывает ужасно непонятным.
Комментарий #4: 3 сентября 2012 @ 22:52
Написал: Design FactoRy — группа: Администраторы  
На сайте с: 21.07.2009   |   Публикаций: 3300   |   Комментариев: 500
ICQ: --- не указано ---
acelote, рады были помочь!
Комментарий #5: 4 сентября 2012 @ 22:50
Написал: FAFNIR — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Действительно спасибо. Многих вещей действительно не знал, однозначно пригодится в будущем.
Комментарий #6: 29 сентября 2012 @ 08:19
Написал: Мария — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Скажите пожалуйста, как запретить посещение сайта с зарубежных ip? Атакуют из США
Комментарий #7: 29 сентября 2012 @ 15:13
Написал: Design FactoRy — группа: Администраторы  
На сайте с: 21.07.2009   |   Публикаций: 3300   |   Комментариев: 500
ICQ: --- не указано ---
Мария, используйте пункт 06. Блокировка посетителей с определенных IP-адресов
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Национальная денежная единица России
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Март 2017    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031