10 вставок кода для файла .htaccess

Файл .htaccess является сердцем веб сервера, который работает под управлением Apache. Именно здесь определяется реакция сервера на различные действия посетителя. в данном уроке приводится 10 с + приемов для использования в файле .htaccess.

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

Предупреждение: перед редактированием файла .htaccess нужно всегда делать резервную копию работающего варианта!

 

Принудительная постановка замыкающего слеша

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

<IfModule mod_rewrite.c>
 RewriteCond %{REQUEST_URI} /+[^\.]+$
 RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>

 

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

Хотлинк (использование изображений вашего сайта другими сайтами в сети) является весьма популярной практикой, которая прожигает впустую трафик вашего сервера. Следующий код будет перенаправлять все хотлинк запросы к изображениям вашего сайта на определенную картинку, адрес которой задается в строке 6.

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

 

Перенаправляем мобильные устройства

Если ваш сайт не использует адаптивный дизайн, то будет очень полезно перенаправить мобильные устройства на специальную версию сайта.

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT}  "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
#------------- Строка ниже исключает iPad
RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$
#-------------
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] 
RewriteRule ^(.*)$ /m/ [L,R=302]

 

Принудительная загрузка файлов определенного типа

По некоторым причинам вам может потребоваться принудительная загрузка файлов определенных типов (например, MP3 или XLS). Нижеприведенный код будет предотвращать чтение таких файлов браузером и принудительно запускать загрузку.

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

 

Междоменное использование шрифтов для FireFox

При использовании встроенных шрифтов Firefox не позволяет брать их с внешних сайтов. Следующий код для файла .htaccess позволит обойти данное ограничение.

<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
#Замените yourdomain.com на адрес вашего блога
    Header set Access-Control-Allow-Origin "http://yourdomain.com"
</IfModule>
</FilesMatch>

 

Ускоряем сайт с помощью кэширования .htaccess

Используя кэширование .htaccess можно существенно увеличить скорость сайта.

# 1 ГОД
<FilesMatch "\.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 НЕДЕЛЯ
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 2 ДНЯ
<FilesMatch "\.(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</FilesMatch>
# 1 МИНУТА
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>

 

Отсекаем спам

Страдаете от спама на вашем блоге WordPress? Конечно, плагин Akismet может оказать существенную помощь, но и файл .htaccess не останется в стороне от борьбы с заразой. Данный код предотвращает непосредственный доступ спам ботов к файлу  wp-comments-post.php, который формирует комментарии на блоге.

# Заменяем yourdomainname на имя вашего домена
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

 

Приводим различные фиды к единому формату

Несколько лет назад использовались различные форматы фидов, такие как RSS, Atom или Rdf. В наши дни RSS определенно стал самым используемым. Данный код позволяет перенаправить все форматы фидов в один формат.

# Заменяем URL на адрес своего блога
<IfModule mod_alias.c>
 RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://example.com/feed/
 RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://example.com/comments/feed/
</IfModule>

 

Конфигурируем сайт для видео HTML5

HTML5 привнес много новшеств в мир веб разработки. Возможность проигрывать видео без использования FLASH является одной из лучших особенностей HTML5. Хотя нужно правильно сконфигурировать  сервер для корректной работы с последними стандартами видео HTML5.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType application/x-shockwave-flash swf

 

Записываем ошибки PHP в журнал

Вместо вывода ошибок PHP на страницах вашего сайта (что дает информацию потенциальным хакерам…) можно записывать их в журнал (файл .log), скрывая от посетителей.

# отключаем вывод ошибок пользователям
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

 

Запускаем PHP в файлах JavaScript

При разработке кода JavaScript иногда требуется использовать PHP в файлах .js.  Например, для получения данных из базы.

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js

<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.catswhocode.com/blog/10-htaccess-snippets-to-optimize-your-website
Перевел: Сергей Фастунов
Урок создан: 28 Октября 2011
Просмотров: 65367
Правила перепечатки


5 последних уроков рубрики "Для сайта"

  • Эффекты блочного раскрытия

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

  • 15 полезных .htaccess сниппета для сайта на WordPress

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

  • 20 бесплатных тем для WordPress в стиле Material Design

    Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.

  • 20 сайтов с креативным MouseOver эффектом

    Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.

  • 45+ бесплатных материалов для веб дизайнеров за август 2016

    Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 30 Октября 2011 14:45
    Hamey
    Спасибо огромное! Супер! Я уже давно ищу подобное руководство.
  • 30 Октября 2011 16:50
    Владислав
    У вас опечатка!!! Например, для получения банных из базы. банных или ДАННЫХ?
  • 30 Октября 2011 17:31
    Slonoritsar
    спасибо!
  • 30 Октября 2011 18:30
    banzaj
    Классная статья, спасибо!
  • 30 Октября 2011 21:42
    notbot
    Огромное спасибо!
  • 31 Октября 2011 03:30
    Nof1000
    Запуск PHP в js, ух это вообще супер. Огромное спасибо вам!!!
  • 31 Октября 2011 09:37
    akmalsulaymonov
    Спасибо...
  • 31 Октября 2011 11:09
    rasul96
    почему не работает код "Запускаем PHP в файлах JavaScript" ставлю в .htaccess а в браузере выводит php просто php код
    • 31 Октября 2011 18:33
      evgenics
      Это не на всех хостингах работает
  • 31 Октября 2011 15:58
    Serpanok
    спасибо) оч помогло ;)))
  • 31 Октября 2011 17:09
    RebelioUS
    что то ничего у меня не пашет.
  • 31 Октября 2011 18:55
    FIFAGamer
    В принципе можно и на PHP такие проверки сделать. Хоть на ограничение расширения файлов хоть на что-то др.
    • 9 Ноября 2011 04:04
      artem.chub
  • 1 Ноября 2011 10:19
    smolina_viktory
    Подскажите, как именно работает код для "Предотвращаем хотлинк ресурсов сайта"? У меня не получается, хотя все остальные коды работают ((
  • 2 Ноября 2011 06:15
    maha
    Очень класная урок.. Привет Евгений Попов - Уменя один вопрос к вам, У меня есть вопрос на мой сайте есть сраница направления администратора но в а Google поевляется сылка на администратора как избежат ат такое - чтобы в google не поевился мой администратор сылка? C Уважени maha. Жду овета от вас?
    • 8 Ноября 2011 22:39
      truehazard
      запретить индексирование некоторых страниц и каталогов. у вас гугл аналитик стоит ? или яндекс метрика то они индексируют всё без исключения....
  • 3 Ноября 2011 23:49
    hors_de_prix
    а какой код прописать для конвертации ссылок к примеру - index.php в /index/ ?
  • 25 Ноября 2011 19:57
    PHP_Мастер
    ЭТОТ КОД НЕРАБОТАЕТ, ЕВГЕНИЙ ФИЛОНИТ <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] </IfModule>
  • 25 Декабря 2011 17:00
    assd
    Подскажите пожалуйста. Пишу: RewriteEngine On RewriteRule ^index/$ /index.php [NC,L] и не работает. Может в денвере не хочет.
  • 12 Января 2012 09:58
    egoel
    Здравствуйте, Евгений! Подскажите как скрыть структуру каталогов сайта отображающеюся в адресной сроке браузера от пользователя?
  • 12 Января 2012 10:21
    egoel
    В место картинки отображается просто рамка пустого места, все перепробовала. Картинка создана, но результата ноль(
  • 2 Марта 2012 12:10
    JonnyD
    Объясните поподробней "Перенаправляем мобильные устройства", если можно создать небольшой урок на эту тему. Думаю для многих это будет нужной информацией. Заранее спасибо!
  • 1 Апреля 2012 19:30
    79211535150
    <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
    </IfModule>
    а у меня он почему то не работает... в чем может быть проблема? Вот содержание из .htaccess: <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] </IfModule> создал на своем пк файл .htaccess ---> скопировал в него <IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] </IfModule> и сохранил, после отправил в корень на хостинге. сайт у меня на хтмл. Помогите разобраться, плыз!
  • 8 Апреля 2012 20:17
    dmitriy.zhilyaev
    В статье "Записываем ошибки PHP в журнал". Мне интересно: файл сам создается или его надо создать и положить в папку(а вот в какую). А также: <?php . . . *// здесь типо исходный код ДО . else{ echo 'Что за развод!?'; exit(); } ?> Что с этим?
  • 5 Декабря 2012 13:03
    Вітя Омельчук
    Спасибо очень полезная статья
  • 6 Марта 2013 00:41
    dtemali
    Класс! Клевая статья!!!
  • 8 Ноября 2014 13:55
    igorvoronoff
    Со вчерашнего дня, есть и активная защита от хотлинкеров. Не прячьте от них контент, пусть создадут свои сайты. Пока у них не много посетителей, они не мешают. А дальше, можно заблокировать, только доступ с сайта хотлинкера и показывать ему вашу рекламу. "Индивидуальный подход" к каждому. Одним кликом кому-то можно запретить или разрешить показ Вашего контента. СПИСОК ПОДКЛЮЧИВШИХСЯ ХОТЛИНКЕРОВ В ВАШИХ РУКАХ Читайте здесь - http://hlhunter.ru Смотрите на видео - http://youtu.be/3YOo3fZWeeM А здесь - http://sufferer.ru можете даже на себе испытать, как это работает
  • Комментарий удален
    • 30 Октября 2011 20:21
      WI_Wind
      Чего не получается, все есть:
      <?php
      echo 'Что за развод!?';
      exit();
      ?>
      
      • 22 Апреля 2012 19:23
        Alexandr Nezhalko
        Ребят, а как nohotlink отобразится на индексированных картинках в поисковиках?
^ Наверх ^