Главная > Безопасность, Поисковая оптимизация > Более 10 вариаций .htaccess для оптимизации вашего веб-сайта

Более 10 вариаций .htaccess для оптимизации вашего веб-сайта


15 ноября 2011, 17:50. Разместил: Design FactoRy
Файл сервера Apache, .htaccess, находится прямо в сердце вашего сервера и заведует тем, каким образом ваш веб-сайт будет реагировать на действия, произведенные посетителями. Я собрал для вас более 10 превосходных настроек данного файла, которые помогут вам оптимизировать работу веб-сайта: перенаправление, воспроизведение, простота в использовании! Наслаждайтесь!

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

Внимание: всегда создавайте резервную копию файла перед тем, как изменять его!

Принудительное использование обратного слеша

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

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

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

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

RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
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]
#------------- 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]

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

По какой-либо причине вам может понадобиться принудительная загрузка определенных файлов типа 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>
    Header set Access-Control-Allow-Origin "http://yourdomain.com"
</IfModule>
</FilesMatch>

Ускорение работы сайта за счет кэша .htaccess

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

# 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>

Предотвращение спама в Wordpress

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

<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. Данный сниппет позволяет вам перенаправлять все рассылки в одну. Его можно использовать «как есть», если вы работаете с Wordpress.

<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. Данный сниппет поможет вам в этом!

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-ошибок на сайте, данный сниппет поможет вам списывать все ошибки в лог-файл, скрывая ошибки от обывателей.

# 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

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

При разработке кода javascript бывает крайне удобно использовать PHP внутри файлов .js. Например, можно извлекать информацию из баз данных. Данный сниппет поможет вам разрешить использовать PHP внутри файлов javascript.

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

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

Вернуться назад