Блог Web-мастера

jQuery, php, CSS и немножко SEO


.htaccess: Советы и основные ошибки.

htaccess

htaccess

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

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

После подсказок поговорим о 8 самых распространенных ошибках. Что ж, начнём?

12 Основных приёмов .htaccess:

1. Создайте собственную страницу ошибок.

обработка 404 ошибки.

.htaccess на Apache сервере Linux облегчает создавать Ваши собственные страницы ошибок. Просто создайте свои собственные страницы ошибок и добавьте этот код в свой .htaccess файл:


ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

(Вы должны заменить “/500.php” и остальные на путь к этим файлам на Вашем сервере.)

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

Если Вы не включаете файл индекса в директории, посетители могут непосредственно просмотреть содержимое директории.

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

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

Этого можно избежать добавлением одной строчки в файл .htaccess Вашего сайта.


Options All -Indexes

3. Установите страницу по умолчанию для всех каталогов.

Изменение индекса каталогов сайта.

Изменение индекса каталогов сайта.

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


DirectoryIndex news.html

(Вы должны заменить “news.html” на то, что хотите использовать по умолчанию.)

4. Настройте 301, редирект.

Настройка редиректа.

Настройка редиректа.

Если Вы измените структуру своего сайта и должны будете переадресовать некоторые старые URL, то следующий отрывок кода сделает это за Вас:


Redirect 301 /original/filename.html http://domain.com/updated/filename.html

/original/filename.html - старое местоположение (принимаемый адрес)
http://domain.com/updated/filename.html - новое местоположение (редирект).

5. Сжатие файлов с GZIP.

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

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

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

<IfModule mod_gzip.c>
mod_gzip_on         Yes
mod_gzip_dechunk    Yes
mod_gzip_item_include file          \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler       ^cgi-script$
mod_gzip_item_include mime      ^text\.*
mod_gzip_item_include mime      ^application/x-javascript.*
mod_gzip_item_exclude mime      ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

6. Редирект к безопасному https - соединению

Если Вы хотите переадресовать свой сайт к безопасному https соединению, используйте следующее:


RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

7. Блокировка исполнения скриптов.

Вы можете остановить выполнение скриптов на определенных языках, используя следующее:


Options -ExecCGI
AddHandler cgi-script .pl .py .php .jsp. htm .shtml .sh .asp .cgi

Просто измените названия языков на те, которые необходимо остановить.

8. Заставьте пользователей загружать файлы.

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


AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4

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

9. Установите ограничения для загрузки файлов.

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


php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_execution_time 200
php_value max_input_time 200

Первая строка для ограничения размера фалов для загрузки;
Вторая строка определяет максимальный размер для $_POST данных;
Третья строка - максимальное время в секундах, которое может работать скрипт;
Четвертая - максимальное количество времени в секундах, которое скрипт может обрабатывать входные данные.

10. Включите кэширование файлов.

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


#кэшировать html и htm файлы на один день
<FilesMatch ".(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
#кэшировать css, javascript и текстовые файлы на одну неделю
<FilesMatch ".(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
#кэшировать флэш и изображения на месяц
<FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
#отключить кэширование
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>

(Время для max-age в секундах.)

11. Защитите свой сайт от “hotlinking”.

Доставьте неудобства тем, кто крадёт Ваш контент. Сделайте так, чтобы они не показывали изображения, принятые с Вашего сервера на своих страницах. Вот способ заблокировать hotlinking в htaccess:


RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9]  \.)?domain\.com [NC]
RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L]

(Не забудьте заменить “domain\.com” на свои значения)

12. Замаскируйте свои типы файлов.

Вы можете замаскировать все свои типы файлов, заставляя их выглядеть как файлы PHP. Только вставьте этот отрывок в htaccess:


ForceType application/x-httpd-php

htaccess

htaccess

8 Советов по использованию htaccess.

  • Будьте осторожны при написании, .htaccess не прощает орфографических ошибок.
  • Синтаксис файла .htaccess чувствителен к регистру. Если что-то написано в примерах с заглавной буквы, убедитесь, что также оно выглядит и в вашем htaccess файле.
  • Оптимизируйте настройки кэширования. Если ваш сайт почти полностью статический, вы можете установить в разы большее время кэширования. Если же ваш сайт ежедневно обновляется, убедитесь, что пользователи просматриваютобновленные страницы, а не кэшированные.
  • Не забывайте комментировать свой htaccess файл. Это можно сделать, добавив # в начале строки комментария.
  • Всегда тестируйте ваш сайт сразу же после внесения любых изменений в ваш htaccess файл. Одна опечатка может положить Ваш сайт, и Вам придется потратить много времени на исправление ошибок.
  • Всегда делайте backup ( резервные копировании ) Ваших htaccess файлов перед внесением каких-либо изменений. Таким образом, если возникнут проблемы, Вы сможете легко восстановить старый файл.
  • Некоторые методы не кросс-браузерны!
  • Помните, защищая каталог с htaccess, что, если он не ограничен https доступом, пароль мог засветиться (поскольку Ваши данные аутентификации будут переданы по небезопасной связи).
Статья - вольный превод “The Definitive Guide to htaccess Techniques: Do’s and Don’ts“.
Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Похожие статьи

Если Вам понравилась эта статья,
подпишитесь на RSS !

Метки: , , , ,

9 Комментариев к “.htaccess: Советы и основные ошибки.”

  1. Lui написал:

    Как сделать сжатие через htaccess если сервер nginx?

  2. zhan написал:

    GZIP не тормозит работу сервера?

  3. Александр написал:

    Включение кэширование файлов работает только при условии наличии на хостинге апачи?
    А есть способы включения кеширования если нет апачи на сервере?

  4. kinospeed написал:

    Спасибо за статью

  5. алкотестер написал:

    как закрит индексирование сайта с .htaccess

  6. Yura goldblog написал:

    индексирование сайта закрывается в robots.txt записью:
    User-agent: *
    Disallow: /

  7. adam написал:

    отличный ман, добавлю в избранное

  8. kvins написал:

    Чета не понял скрипт Замаскируйте свои типы файлов. поставил на сайт и нечего не произошло, тока css перестал подгружатся =)

  9. Александр написал:

    Спасибо за полезную и интересную информацию!

Оставить комментарий

Я не робот.