На сервере Apache файл .htaccess находится в корне вашего веб-сайта и определяет его реакцию на различные действия, совершаемые вашими посетителями. Я составил 10+ удивительных фрагментов кода в файл .htaccess, которые оптимизируют сайт во многих отношениях: перенаправления, производительность, простота использования … Наслаждайтесь!
Все приведённые ниже фрагменты кода необходимо разместить в файле .htaccess
, который расположен в корне вашего сайта на сервере Apache.
Внимание: Прежде, чем редактировать свой файл .htaccess побеспокойтесь о его рабочей копии и храните её в надёжном месте!
Ускоряющий слэш
Некоторые студенты заметили, что в конце моих URL-адресов обязательно стоит слэш. Похоже, он отлично подходит для SEO. Следующий фрагмент кода добавляет слэш ко всем своим URL на сайте.
RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
Источник:
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. Этот код предотвратит чтение файлов специфицированного типа браузером и заставит вместо этого сделать загрузку.
ForceType application/octet-stream Header set Content-Disposition attachment ForceType application/octet-stream Header set Content-Disposition attachment
Источник:
Доступность кросс-доменных шрифтов для Firefox
Firefox не позволяют вставлять шрифты из внешнего веб-сайта. Используя этот код в .htaccess
вы можете обойти это ограничение.
Header set Access-Control-Allow-Origin "http://yourdomain.com"
Источник:
Ускорение сайта за счёт кэширования через .htaccess
Это, вероятно, самый полезный фрагмент здесь. С помощью некоторых простых .htaccess
файл cahing, вы можете значительно увеличить скорость сайта. Отрывок вы всегда должны иметь на вашей панели инструментов!
# 1 YEARHeader set Cache-Control "max-age=29030400, public" # 1 WEEKHeader set Cache-Control "max-age=604800, public" # 2 DAYSHeader set Cache-Control "max-age=172800, proxy-revalidate" # 1 MINHeader set Cache-Control "max-age=60, private, proxy-revalidate"
Источник:
Стоп спамерам вашего блога на WordPress
Вы видели спамеров на своём блоге WordPress? Конечно, Akismet их значительно сокращает, но ваш .htaccess
также может помочь: рецепт этого сниппета заключается в блокировке доступа спам-ботов непосредственно к файлу wp-comments-post.php
, который используется для отправки комментариев на вашем сайте.
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]
Источник:
Перенаправление каналов оповещений различных форматов в единый канал
Уже несколько лет назад стали использоваться различные форматы оповещений об изменениях на сайтах, такие как RSS, Atom или RDF. Но, кажется, в настоящее время RSS, безусловно, наиболее популярен. Этот код позволяет свести все каналы оповещение различных форматов в один канал. Этот фрагмент можно использовать «как есть» для сайтов на WordPress.
RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://example.com/feed/ RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://example.com/comments/feed/
Источник:
Настройка вашего сайта для видео 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 .jsSetHandler application/x-httpd-php
Источник:
По мотивам:
10+ сниппетов .htaccess для оптимизации web-сайта, опубликовано К ВВ, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.
Респект и уважуха