Яндекс.Метрика

Дизайн-журнал №1. Актуальная информация для дизайнеров, веб дизайнеров, программистов и разработчиков сайтов.

15 полезных htaccess трюков для улучшения работы веб-сайта

22 августа 2012 | Опубликовано в Веб-дизайн | 17 Комментариев »

Если все правильно делать и использовать, то конфигурационный файл web-сервера Apache - .htaccess (hypertext access) — может сослужить хорошую службу умелому веб-разработчику. Однако, как это часто бывает, то, с чем дружит разработчик, веб-дизайнер подружится не может и наоборот. По какой-то причине дизайнеры часто забывают об этом свойстве. Сегодня мы поговорим о том, как с помощью  .htaccess  дизайнер может улучшить работу сайта.

1. Защита от хотлинкинга  с .htaccess

Сайты, которые крадут ваш контент могут весьма и весьма раздражать. К тому же они могут повредить рейтинг сайта, так как  создают дублируемый в интернете контент. Но есть  случаи и похуже — это сайты, которые не просто «тырят» ваш контент, но и не утруждают себя перелинковкой и загрузкой изображений на собственный сервак. А это уж совсем нехорошо. Загрузка изображений с вашего сервера называется хотлинкинг,  и это значит, что в таком случае сайт-вор украл часть вашего драгоценного трафика. 

Для профилактики людей от таких нехороших веб-мастеров можно включить следующие строки  файл .htaccess (очевидно, заменяйте «yoursite.com» на  адрес вашего сайта)

RewriteBase / 
RewriteCond% {HTTP_REFERER} ^ $! 
RewriteCond% {HTTP_REFERER} ^ http:// (www.) yoursite.com / * $ [NC]!?. 
RewriteRule (GIF | JPG | SWF | FLV | PNG). $ / подача / [R = 302, L] 

2. Предотвращение просмотра директорий и файлов

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

Options All -Indexes

3. 301 редирект  - ведь это хорошо для SEO 

Я использовал эту очень часто, почти на каждом сайте, где я изменил URL структуры  при помощи редизайна или опций сервера. Чтобы перенаправить старые страницы на их новый адрес в удобном для пользователя виде, можно использовать  сниппет в .htaccess:

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

  

4.  Установить Email для администратора сайта

Используя данный код вы можете по умолчанию установить  Using this code you can specifying the default email address for the server administrator.

ServerSignature EMail
SetEnv SERVER_ADMIN [email protected]

5. Отображение страницы ошибки 404

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

ErrorDocument 404 / 404.html

6. Настройки по умолчанию страницы каталога

Если по какой-то причине вам нужно cделать так, чтобы  страницы каталога отличались. Сделать это очень легко при помощи .htaccess. Например, если вы хотите, чтобы файл default.html стал страницей по умолчанию, просто добавьте эту строку.

DirectoryIndex about.html

7.  Редирект со старого домена на новый

Используя .htaccess файл вы можете перенаправлять пользователей со старого домена на новый. Для этого достаточно использовать код:

# redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L] 

8. Блок нежелательных посетителей

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

<IfModule Mod_rewrite.c> 
RewriteEngine на RewriteCond% {HTTP_REFERER} spamteam.com [NC, OR] 
RewriteCond% {HTTP_REFERER} trollteam.com [NC, OR] 
RewriteRule. * — [F] 
</ IfModule>  

 

9. Укажите лимит загрузки файлов для PHP в Htaccess

Эта опция заслуживает внимания если вы используете  Drupal на виртуальном хостинге. Мне пришлось сбросить лимит для загрузки файлов, чтобы мои клиенты могли загружать большие файлы. Первое  изменение — это максимальный размер файла для загрузки, второе — максимальный размер отправленных данных, третье — максимальное время в секундах на обработку запроса. При этом скрип можно запускать до того, как заканчивает работу парсер. Самый последний код — это  максимальное время в секундах для обработки  сценария.  Допускается для анализа входных данных, например, таких как загрузка файлов на сервер, POST и GET-данных.

php_value upload_max_filesize 20M 
php_value post_max_size 20M 
php_value max_execution_time 200 
php_value max_input_time 200

10. Сжатие файлов

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

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

11. Кэш файлов

Чтобы оптимизировать скорость кэширования файлов используйте сниппет:

<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
Header set Cache-Control “max-age=2592000″
</FilesMatch>

12. Редирект пользователей на разные сайты за исключением нескольких 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

13.  Конечный слэш

Я не могу этого доказать, но я читал бесчисленное количество раз, что добавлять слеш в конце URL хорошо для SEO и загрузки страницы. Если вам также известно такое мнение, то можно добавить следующий сниппет в  .htaccess.

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

14. Не показывать запрос о загрузке файлов

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

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

 

15.  Изменяем тип файлов

Любые файлы можно переобразовать в одну группу. Будь то  image.jpg, index.html, или default.cgi — все будут действовать как php

<Files test>
ForceType application/x-httpd-php
SetHandler application/x-httpd-php
</Files> 

Автор — Дежурка
В статьи использованы статьи и материалы 

Также полезную информацию по теме можете найти здесь: habrhabr

 

 




Комментарии

  1. ololo
    Thumb up Thumb down +4

    Сергей. но почему же? все ок. и весьма толково и полезно :) Думаю. многое пригодится :)

  2. Xtray
    Thumb up Thumb down -1

    +1.

    Особенно 6-й пункт, первое предложение вообще «загадочное». И, далее, в тексте написано «default.html», а в примере — «about.html».

  3. АлаичЪ
    Thumb up Thumb down +1

    В пункте ошибка в коде :P Сами найдите где и почему!

  4. Дмитрий
    Thumb up Thumb down -1

    9. Укажите загрузить файл предел для PHP в Htaccess

    Google translate? =)

  5. -
    Thumb up Thumb down +1

    14. Поубивал бы таких.

  6. Alex
    Thumb up Thumb down +1

    Интересно автору спасибо.

    К стате кого интересует devcolibri.com

  7. ываыв
    Thumb up Thumb down 0

    Ебучий 302 редирект!!!

  8. Евгений
    Thumb up Thumb down 0

    Не подскажите как сделать дневной лимит на скачивание файлов для каждого отдельно взятого IP?