10 вариантов применения .htaccess файла, о которых вы должны знать

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

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

Удаление www в url

Часто, с точки зрения SEO, лучше не использовать приставку www в своих URL. Следующий отрывок удалит www из вашего url и переадресует любой url с www к адресу без www.

RewriteEngine On
RewriteCond %{HTTP_HOST} !^your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]

Предотвращаем хотлинки

Хотлинки – это не очень хорошая практика, которая заключается в использовании изображений из другого места на вашем сайте. Когда вы используете хотлинки, трафик идёт не к вам, тем самым вы многое теряете. Конечно же, рано или поздно, вам понадобится что-то с этим делать. Добавьте следующий отрывок к своему.htaccess файлу после замены URL в качестве примера вашим собственным URL.

RewriteEngine On
#Заменит ?mysite\.com/ на свой url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Заменит /images/nohotlink.jpg на другое изображение
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Перенаправляем RSS к WordPress feedburner

Большинство блоггеров использует веб-службу Feedburner, которая сообщает, сколько людей читает ваш блог через подписки. Если вы используете WordPress, то должны переадресовать все сообщения WordPress (rss, atom, и т.д.) к feedburner. Измените строки 2 и 3, и затем приклейте этот код к своему .htaccess файлу.

<IfModule mod_alias.c>
 RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/
 RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/
</IfModule>

Создание собственных страниц ошибок

Устали от страшных страниц об ошибках на ваших сайтах? Всё, что вам нужно, так это создать парочку красочных html файлов, и вписать следующий код к своему .htaccess:

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

Загрузка файлов со специфическим форматом

Предлагая некоторые файлы на скачку, такие как mp3, eps или xls, вы можете облегчить работу своему веб браузеру и указать напрямую, что с ними нужно делать.

Этот отрывок вызовет загрузку.xls и.eps файлов с вашего сервера.

<Files *.xls>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>
<Files *.eps>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>

PHP ошибки

Данный пример - это интересный способ регистрации и отслеживания ошибок, которые могут возникнуть в результате выполнения php файлов. Для начала вам нужно создать файл php_error.log где-нибудь на сервере, и добавить отрывок к .htaccess файлу. Не забывайте изменять местоположение файла системного журнала на строке 7.

# не отображать ошибки пользователю
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# записывать в файл
php_flag log_errors on
php_value error_log /location/to/php_error.log

Удаляем расширения файлов из URL

Расширения файлов могут быть полезными для разработчиков, но нет абсолютно никакой потребности показывать их своим гостям. Этот отрывок удалит отображение расширения .html для всех файлов html. Этот код может быть легко адаптирован и для других расширений, таких как php.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
# Заменить html вашими собственными расширениями. К примеру: php, htm, asp

Запрет на отображения содержимого директории

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

Options -Indexes

Уменьшаем размер страниц, сжимая статические данные

Наверняка вы знаете о возможности отправки сжатых данных посетителям, которые в последствии, будут распакованы клиентом. Этот код определенно вам нужен.

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

Автоматическое добавление utf-8 charset к вашим файлам

Чтобы избежать проблемы с отображением символов на странице, вы можете применить следующий трюк. Таким образом, вы гарантируете, что ваши html документы будут всегда отображаться правильно, даже если в файле отсутствует тег < Мета http-equiv = "Content-Type">

<FilesMatch "\.(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.catswhocode.com/blog/10-useful-htaccess-snippets-to-have-in-your-toolbox
Перевел: Станислав Протасевич
Урок создан: 25 Июня 2011
Просмотров: 31203
Правила перепечатки


5 последних уроков рубрики "Разное"

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 26 Июня 2011 03:03
    Kapi
    Было, инфа 100%
    • 26 Июня 2011 15:34
      demon
      Нет, не было. Ты сравни с начало, а потом уж говори.
      • 27 Июня 2011 21:39
        Kapi
        да было!
  • 26 Июня 2011 10:39
    vUdav
    Да, было уже нечто такое. За описание gzip сжатия спасибо, ещё бы хотелось поподробнее узнать о настройке кэширвоания, а то Google Page Speed ругается, а поиск почти ничего не дал
    • 12 Июля 2011 18:17
      inju
      Попробуйте почитать здесь: http://ruseller.com/lessons.php?rub=28&id=640
  • 26 Июня 2011 12:51
    WI_Wind
    Очень много полезной инфы!
  • 26 Июня 2011 13:28
    turbopaskal
    Удаление www в url
    Зачем www удалять??? Была уже такая тема! И я писал уже что не нужно удалять, а наоборот приписывать. Никто не знает конкретно, но ПОЧЕУМ ТО GOOGLE сам так использует. Наверно под него надо плесать, а не под кого то другого? Зайдите на google.ru и вас перекинет на www.google.ru!!!
  • 30 Октября 2011 06:14
    Slonoritsar
    пригодилось
  • 2 Января 2012 16:29
    misterkornyakoff
    пригодилось и мне
  • 25 Января 2013 08:31
    likeweb
    за php ошибки +
  • 22 Июля 2016 22:03
    Ирина Кравчук
    Какой командой разрешить заходить на сайт только с браузера IE ??
  • Комментарий удален
    • 26 Июня 2011 00:08
      <:Golgi:>
      а вам не кажется, Что там сделано чисто на поддоменах?
    • 26 Июня 2011 21:00
      truehazard
      я не знаю как это правильно делается, но нужно как то настраивать алиансы домена и dsn сервер
^ Наверх ^