Війти
24 варианта использования .htaccess
26.01.2013 | Кат. Полезные заметки | 4764
 Файл конфигурации .htaccess может быть очень мощным инструментом разработчика при его правильном использовании. Его можно найти в корневой папке сервера, редактируется обычным текстовым редактором. В этой статье вы увидете более 20 .htaccess хаков и способы их применения.

Прежде чем перейти к возможностям .htaccess, хочу сказать, что чрезмерное злоупотребление .htaccess может снизить производительность вашего сайта. Следует использовать .htaccess, только если нет другого способа решить задачу.

Сделайте резервную копию вашего файла, прежде чем вносить изменения.
1. Ограничение доступа с других сайтов

Не нравится, когда картинки с вашего сервера используют на своих сайтах? Добавьте эти строчки кода, чтобы избежать этого.
Options +FollowSymlinks

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
2. Ограничение доступа по user-agent

Возможно заблокировать всех нежелательных пользователей, которые могут причинить вред серверу.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]

Order Allow,Deny
Allow from all
Deny from env=bad_bot

3. Редирект всем, кроме определенной группы IP

Если по некоторой причине вы хотите отказать в доступе (или наоборот, разрешить) некоторой группе IP адресов, следующий код для вас.
ErrorDocument 403 http://www.domainname.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123
4. 301 редиректы для поисковых роботов

Если вы перенесли сайт на другой домен или хотите перенаправить посетителя с одной страницы на другую без ущерба для поисковых роботов, используйте следующий код.
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
5. Пользовательская страница с ошибками

Надоели стандартные сообщения об ошибках? Теперь вы можете создать свои собственные.
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
6. IP бан-лист

Кто-то постоянно оставляет комментарии в вашем блоге? Запретите надоедливого пользователя с помощью этих строчек.
allow from all
deny from 145.186.14.122
deny from 124.15
7. Email администратора

Следующий код устанавливает адрес электронной почты администратора вашего сервера.
ServerSignature EMail
SetEnv SERVER_ADMIN default@domain.com
8. Отменить запрос об открытии файла

Обычно при скачивании, браузер спрашивает, хотите вы открыть или сохранить выбранный файл. Чтобы избежать этого необязательного вопроса, используйте следующий код.
AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov
9. Защитить отдельный файл

Следующий код позволяет вам отказать в доступе к любому файлу. Сервер выдаст ошибку 403 всем, кто попытается открыть файл. Пример показывает, как защитить .htaccess файл.

order allow,deny
deny from all

10. Сжатие с mod_deflate

Наряду с Gzip архивированием файлов, вы можете использовать mod_deflate (что предположительно быстрее). Поместите указанный код в начало вашего .htaccess файла (вы также можете добавить картинки .jpg, .gif, .png, .tiff, .ico).


SetOutputFilter DEFLATE


11. Добавление заголовка Expires

Представленный код показывает, как добавить информацию о времени жизни файла.

Header set Expires "Wed, 21 May 2010 20:00:00 GMT"

12. Страница по умолчанию

Вы можете установить страницу по умолчанию для любой директории. Пример ниже устанавливает about.html вместо index.html.
DirectoryIndex about.html
13. Защита паролем

Вы можете включить аутентификацию любой директории или файла на вашем сервере.
# защита файла

AuthType Basic
AuthName "Prompt"
AuthUserFile /home/path/.htpasswd
Require valid-user


# защита директории
AuthType basic
AuthName "This directory is protected"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
14. Перенос на новый домен

Используя .htaccess, вы можете перенаправить пользователей на новый домен.
RewriteEngine On
RewriteRule ^(.*)$ http://www.domainname.com/$1 [R=301,L]
15. Кеширование

Представленный ниже код не увеличит время загрузки файлов сервера. Единственное, что изменится, - контент будет загружаться быстрее для пользователей, которые уже были на сайте. Вы можете изменить срок действия кеша, изменив число секунд (в сутках 86400 секунд).
FileETag MTime Size
ExpiresActive on
ExpiresDefault "access plus 86400 seconds"
16. Gzip сжатие

Используйте Gzip, чтобы ваш сайт грузился быстрее.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch bMSIE !no-gzip !gzip-only-text/html
17. Убрать папку с URL

Чтобы http://yourdomain.com/category/blue изменить на http://yourdomain.com/blue, добавьте строчку в ваш .htaccess.
RewriteRule ^category/(.+)$ http://www.yourdomain.com/$1 [R=301,L]
18. Disable Directory Browsing

Чтобы запретить пользователям просматривать содержимое папок, используйте код ниже. Эта информация может быть весьма ценной для злоумышлеников. Чтобы открыть доступ, замените минус на плюс.
Options All -Indexes
19. Редирект WordPress фида на FeedBurner

Представленный ниже код перенаправляет RSS фид WordPress к FeedBurner.

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/yourfeed [R=302,NC,L]

20. Защита от ботов

Данный пример для пользователей WordPress. При добавлении комментария сервер сравнивает заголовок Referer с "wp-comments-post.php". Если он не совпадает, комментарий не добавится.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
21. Удалить расширение файла из URL

Представленный ниже код удаляет расширение .php (можете задать html) из строки адреса. Обновленный код поисковикам понравится больше.
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
22. Добавить www в строку адреса

Если вы хотите, чтобы в адресе вашего сайта присутствовал префикс www, добавьте следующие строчки.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
23. Убрать www из строки адреса

Для решения обратной задачи, используйте такой код.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
24. Запретить прямой доступ к сайту

Если нужно разрешить доступ на страницу только тем, кто перешел на сайт по ссылке, используйте следующие строчки кода.
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$
RewriteRule ^.*$ - [F]

Необходимо ограничить сайты рефералы? Запишите их в RewriteCond.


  • Детская одежда. Покупки онлайн.
    Детская одежда. Покупки онлайн.

     Сегодня родители и дети имеют более разнообразный выбор одежды. Разнообразный выбор также связан с тем, что у родителей есть больше возможностей посетить торговые центры. Родители могут выбрать, как делать…

  • Где взять дешёвые и безвредные моющие средства

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

  • Как очистить клавиатуру и мышь от грязи

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

  • Урок создания flash видео плеера

    Рассмотрим пример создания флеш проигрывателя для видео файлов, который можно установить на свой сайт, позволив посетителям сайта смотреть видео на сайте без скачивания при помощи технологии Adobe Flash, на языке actionscript 2.…

  • Продвижение сайта с помощью YouTube

    Часто ли вы используете в продвижении и оптимизации сайта нестандартные методы? Если вопрос задать общей массе вебмастеров, то ответ однозначен – нет. Занимаясь продвижением сайтов, мы часто используем…

  • Восстановление таблицы разделов в Windows и Linux

    Восстанавливать таблицы разделов на жестком диске будем с помощью утилиты testdisk для этого:Для Windows скачиваем здесьДля Linux устанавливавем командой в терминале apt-get install testdisk или yum install testdisk запускаем #testdisk1. выбираем…

  • Достоинства оконных жалюзи

      Жалюзи являются популярным, но в то же время своеобразным видом штор для офисов и обычных квартир. Они существенно отличаются от традиционных тканевых изделий, которыми украшают окна.Широкий выбор разного рода…

  • Обзор игры Warcraft 3: The Frozen Trone

    Более шести лет назад состоялось воистину эпохальное событие, которое изменило если не всю игровую индустрию, то её значительную часть. Речь идёт, конечно же, о творении компании Blizzard — стратегии Warcraft 3 The Frozen Trone,…

  • Цвет текста

    А можно ли сделать текст цветным? Да ради бога! Для этого существует атрибут <color>. Вот с этим колером мы сейчас и поработаем. Вообще, цвета можно задавать двумя разными способами. Первый - можно использовать словесное…

  • Создание загрузочной флешки в windows 7, 8

    Скачайте BOOTICEИмеем чистую флешку после низкоуровневого форматирования (на ней отсутствуют разделы, MBR, файловая система)если на ней щелкнуть в "Моем Компьютере", то получим это (жмем "Отмена"):2. Запускаем BOOTICE, !!выбираем…


Комментарии

80 + 95 =