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

настройка 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)/?$ 
RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ 
</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]

 



Подпишитесь на рассылку блога
max1net.com: