FL.ru – фриланс сайт удаленной работы №1. Поиск удаленной работы, фрилансеры.

Несколько способов настройки файла .htaccess для оптимизации сайта

Категории: SEO

настройка htaccessНаверняка, многие слышали про этот файл. Файл .htaccess – это сердце сервера, на котором размещается сайт. Именно он отвечает за то, как именно будет реагировать сайт на действия, которые будут осуществляться посетителями. Я немного ковырялся в этом файле.

У меня есть «подопытный кролик» — отстоявшийся сайт с ТИЦ=10, на котором я немного колдую. То хрумером его гонял, а потом смотрел, то аяксом на нем закрывал сайдбар, чтобы посмотреть, что я выиграю с точки зрения поисковой оптимизации.

Ну, а как-то стало интересно, и я ковырялся в .htaccess. Поэтому сегодня о настройках .htaccess, с помощью которых можно немного оптимизировать сайт. В общем, обо всем по порядку.

Те сниппеты, которые я ниже приведу, можно вставлять в файл .htaccess. Это файл расположен в корневой папке веб-сервера Apache.

И еще один момент, перед тем, как я начну. Всегда нужно страховаться. Если что-то крутите-мутите, то, чего не сильно знаете, то всегда бэкапьтесь. А то мало ли. В общем, вы поняли.

 

Кросс-доменная интеграция шрифтов для Firefox

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

1
2
3
4
5
<filesmatch "\.(ttf|otf|eot|woff)$">
<ifmodule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://yourdomain.com"
</ifmodule>
</filesmatch>

 

Запуск PHP внутри файлов javascript

Часто бывает, что внутрь .js файлов нужно запихнуть php. Например, для того чтобы можно было получать какие-то данные из базы данных. Приведенный ниже код позволит решить эту проблему

1
2
3
4
5
6
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
 
<filesmatch "\.(js|php)$">
SetHandler application/x-httpd-php
</filesmatch>

 

Ведём лог PHP-ошибок

Часто косяки php можно заменять прямо на сайте. Проблема решается. Можно сделать так, чтобы эти ошибки записывались в лог-файл. Тогда обычные посетители не будут видеть эти глюки, но зато вам они будут отлично видны

1
2
3
4
5
6
7
# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log

 

Настройка сайта для работы с html5-видео

Те функции, которые были при старом формате языка гипертекстовой разметки, были несовершенны. Это все смогли понять, когда появился html5. Среди многочисленных его функций есть отличная возможность интегрировать видео без Flash. Единственное, что нужно будет правильно сделать настройки сервера, чтобы он работал под html5. Вот решение

1
2
3
4
5
6
7
8
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

 

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

Помните про форматы рассылок типа RSS или Atom? Вопросов нет, все это нужно. Но просто неудобно, когда они живут обособленно. Гораздо удобнее, чтобы все форматы приводились в один. Разумеется, в RSS. С помощью данного сниппета этот вопрос можно решить. Кстати, это особенно актуально, когда речь идет о WordPress

1
2
3
4
<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>

 

Дадим отпор спамерам в WordPress

Не, ну по любому сейчас все подумаю, что есть Akismet. Нафига эти лишние настройки. Да, Акисмет хорошо помогает, но эту же проблему можно решить более практично, через .htaccess. Проблема решается путем запрета доступа ботам. Просто запрещается доступ к wp-comments-post.php

1
2
3
4
5
6
7
8
<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>

 

Использование кэша .htaccess для ускорения работы сайта

Тут сегодня в списке много всяких полезняшек, но, на мой взгляд, это самая полезная из них. За счет кэширования .htaccess можно хорошо разогнать свой сайт. На моем сайте этот вариант показал неплохой результат

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1 YEAR
<filesmatch "\.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</filesmatch>
# 1 WEEK
<filesmatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</filesmatch>
# 2 DAYS
<filesmatch "\.(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</filesmatch>
# 1 MIN
<filesmatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</filesmatch>

 

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

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




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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]
#------------- The line below excludes the iPad
RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$
#-------------
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] #*SEE NOTE BELOW
RewriteRule ^(.*)$ /m/ [L,R=302]

 





  • Серег, такой вопрос. Кэширование через htaccess в чем-то выигрывает у кэширования, например у WordPress, через какие-либо плагины?

  • kulikovodessa

    Сумасшедшая работа по знаниям!

     Такого материала я еще не видел не у одного продвинутого блогера. 

     Только на прошедших выходных переработал на 15 WP — сайтах файл .htaccess. 

    Но, все что я добавил в автоматическую версию это редирект и страницу ошибки 404. А тут вон оказывается сколько возможностей есть……..
     Респект и Уважуха тебе, Сережа!
     Очень было бы интересно взглянуть на твой файл .htaccess, что ты оставил, а что закончилось только экспериментом.

  • На этом блоге изначально стоит гиперкэш, на том сайте, на котором пробовал, сразу настроил кэширование через .htaccess, визуальной разницы особо не различаю. А поставил его потому что хостер ныл, что дофига нагрузка, настроил через .htaccess, все, нытье прекратилось )

  • Ты меня засмущал ) Я не претендую на оригинальность и правильность своих знаний. Я о том, что пробовал, и что получилось )

  • Отличная статья вышла — у меня в этом деле пока опыта не много — совсем такие эксперименты не ставил, так что просто скомунизжу нажитое чужим мозгом к себе  в закладки 🙂  

  • Дадим отпор спамерам в WordPress?

    На тех блогах, где стоит Дискус или какая-нибудь друга не стандартная истема комментирвоания, можно просто удалить файл wp-comments-post.php и всё. Даже в htaccess лазать не придётся 🙂

  • Чет не работает кэш.

  • Анна

    Спасибо Вам за статью! Интересно, а приведённая вами настройка КЭША не затронет в Joomla модули «популярное на сайте» и блок с рекламой, ведь они обновляются очень часто?

    И не могли бы Вы закоментировать действия, а то новичку не понятно, что именно выполняет тот или иной код в .htaccess

    Ещё раз спасибо!

Подпишитесь на рассылку блога
max1net.com:
Уже подписались человек
Укажите свой e-mail