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
22 августа 2012 в 12:09
Сергей. но почему же? все ок. и весьма толково и полезно Думаю. многое пригодится :)
22 августа 2012 в 13:29
+1.
Особенно 6-й пункт, первое предложение вообще «загадочное». И, далее, в тексте написано «default.html», а в примере — «about.html».
22 августа 2012 в 15:40
В пункте ошибка в коде Сами найдите где и почему!
22 августа 2012 в 17:10
9. Укажите загрузить файл предел для PHP в Htaccess
Google translate? =)
25 августа 2012 в 15:18
14. Поубивал бы таких.
11 марта 2013 в 14:54
Интересно автору спасибо.
К стате кого интересует devcolibri.com
23 сентября 2013 в 14:30
Ебучий 302 редирект!!!
8 ноября 2017 в 7:04
Не подскажите как сделать дневной лимит на скачивание файлов для каждого отдельно взятого IP?