10+ сниппетов .htaccess для оптимизации web-сайта

На сервере Apache файл .htaccess находится в корне вашего веб-сайта и определяет его реакцию на различные действия, совершаемые вашими посетителями. Я составил 10+ удивительных фрагментов кода в файл .htaccess, которые оптимизируют сайт во многих отношениях: перенаправления, производительность, простота использования … Наслаждайтесь!


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

Внимание: Прежде, чем редактировать свой файл .htaccess побеспокойтесь о его рабочей копии и храните её в надёжном месте!

Ускоряющий слэш

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

 <IfModule mod_rewrite.c>

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

Источник: [здесь]

Prevent hotlinking

Нotlinked (использования изображений с чужого сайта) является, к сожалению, обычной практикой и значительно снижает скорость загрузки вашего контента. Этот полезный сниппет будет заменять все hotlinked-изображения изображением, определенным в строке 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 файл cahing, вы можете значительно увеличить скорость сайта. Отрывок вы всегда должны иметь на вашей панели инструментов!

# 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

Вы видели спамеров на своём блоге 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 на своём сайте (и возможных вмешательств хакеров …) этот код будет регистрировать ошибки в специальном .log файле, скрывая эти ошибки от читателей.

# 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 внутри .js файлов.

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

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

Источник: [здесь]

По мотивам: 10+ .htaccess snippets to optimize your website

CC BY-NC 4.0 10+ сниппетов .htaccess для оптимизации web-сайта, опубликовано waksoft, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.


Респект и уважуха

Добавить комментарий