.htaccess — это такой текстовый файлик который должен лежать в корневой директории и который позволяет управлять поведением вашего сервера. Создать такой файлик очень просто .
Для этого нужно создать текстовый файл, назвать его .htaccess и сохранить в корне сайта.
А теперь даю вам нужные примеры кода с объяснением для чего он нужен.
1. Определение страниц ошибок (error) в .htaccess
ErrorDocument 403 /403.php ErrorDocument 404 /404.php ErrorDocument 500 /500.php
2. Удаление дублей страниц — редирект адресов-дублей
Часто бывает, что сайт у нас доступен по адресам http://www.site.ru/ http://site.ru/ http://www.site.ru/index.html http://site.ru/index.html Но это неправильно, так как считается как дублированный контент. Этим правилом, мы это исправим
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]
Таким образом, мы получим редирект всех страниц-дублей на http://www.site.ru/
3. Переадресация страниц
redirect 301 /old-page.php http://www.site.ru/new-page.php
4. Защита изображений от скачивания или как предотвратить хотлинкинг
Часто контент с сайта нагло тырят, причем часто тупую вместе с картинками, в итоге на чужих сайтах будут отображаться картинки, который будут подгружаться с ваших серверов, а это не гуд, так как создает повышенную нагрузку.
RewriteEngine on
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^http://([^.]+\.)?site\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !msn\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{REQUEST_URI} !^/hotlinker\.gif$
RewriteRule \.(gif|jpg|png)$ /hotlinker.gif [NC,L]
где hotlinker.gif — это изображение, которое будет показано на сайтах-ворах, вместо украденных картинок. Можете туда вставить лого вашего сайта к примеру.
5. Как позволить использовать php код в статических сайтах и файлах
Для этого добавляем
AddHandler application/x-httpd-php .html
Вместо .html — можно ставить и другие расширения
6. Переадресация на другой сайт
Данное правило перенаправляет всех посетителей, кроме определенных ip на другой сайт
ErrorDocument 403 http://www.yoursitename.ru
Order deny,allow
Deny from all
Allow from 12.345.678.90
Allow from 12.345.678.92
7. Как перенаправить посетителей на страницу поддержки во время отладки сайта
Представьте ситуацию, что вы что-то исправляете на вашем сайте или вообще только его запустили и хотите протестировать. Для этого вам скорее всего понадобится так званная страничка поддержки на которую вы будете перенаправлять посетителей, при этом нужно указать свой ip адрес при заходе с которого, вы сможете зайти на сайт.
RewriteEngine on
RewriteCond %{REQUEST_URI} !/informpage.html$
RewriteCond %{REMOTE_HOST} !^12\.345\.678\.90
RewriteRule $ http://yoursitename.ru/informpage.html [R=302,L]
Просмотр сайта будет доступен с ip-адреса — 12.345.678.90
8.Запрет на просмотр директорий.
Допустим у вас на сайте есть много папок, например, plugins — и вы не хотите, чтобы кто-то когда набрал адрес этой папки видел её содержимое, для этого создаем правило
Options All -Indexes
9. Блокировка доступа к файлу
<Files .htaccess> order allow,deny deny from all </Files>
В первой строке необходимо указать файл
10. Блокировка юзеров по ip
<Limit GET> Order Deny,Allow Deny from 12.345.678.90 Deny from 90.876.543. Deny from .tvoe.tv Allow from all </Limit>
При этом будут заблокированы юзер с ip 12.345.678.90 все посетители с ip, попадающими в диапазон от 90.876.543.0 до 90.876.543.255 и все посетители от провайдера tvoe.tv
11. Как убрать из урла ненужное слово
По умолчанию на wordpress стоит адрес вида http://www.site.com/blog/category/wordpress Но в урле нам category ничего не дает, следущим правилом мы его уберем
RewriteRule ^category/(.+)$ httр://www.yourblog.com/$1 [R=301,L]
12. Перенаправляем RSS ленту WordPress на FeedBurner с помощью .htaccess
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ httр://feeds2.feedburner.com/wordpress[R=302,NC,L] </IfModule>
13. Закрываем администраторский раздел от чужих глаз (IP адресов)
Этим правилом можно закрыть доступ к админке сайта для всех, кроме определенный ip адресов. Помните, что этих строк может быть несколько или, если Вы используете блок адресов, они могут быть записаны в соответствии с правилами IP адресации, к примеру так: 77.77.77.0/255.255.255.0
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Example Access Control" AuthType Basic <LIMIT GET> order deny,allow deny from all allow from xx.xx.xx.xx </LIMIT>
14. Сжимаем статические данные
это правило позволит сжимать некоторые статические файлы, такие как html, css, js
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
15. Вариант кеширования файлов
#кэширование html и htm на сутки <FilesMatch ".(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> #кэширование css, javascript и txt-файлов на неделю <FilesMatch ".(js|css|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> #кэширование flash и картинок на месяц <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 приведен в секундах.
16. Принудительное сохранение файла вместо открытия
AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4
17. Устанавливаем кодировку
AddDefaultCharset UTF-8
Понравилась статья? - Подпишись.
Или поделись полезным с миром
Похожие статьи:
О, отлично, кое что есть новое для себя, нужно будет опробовать на практике.
Как создать переадресацию на определенный ресурс для выборочных
ip-адресов. Другими словами, определенные ip вышедшие на сайт
немедленно перенаправляются на дополнительный ресурс.
не уверен что именно так, потому что я не совсем программист, но я бы попробовал
ErrorDocument 403
Order deny,allow
Allow from all
Deny from 12.345.678.90
Deny from 12.345.678.92
Спасибо.
Спасибо за статью, пару полезностей отметил, поиграюсь на досуге.
как прописать в .htaccess редирект только главной страницы на другой домен?
Привет. А кто сталкивался с задачей: короткая ссылка для сайта: например, (числа: 0..9) а когда заходишь — перекидывает на . Нюанс: в ВП есть и /?cat=1 и вообще может быть папка: /papka-na-servere. Вариант настроить вид ссылки не удовлетворяет.