В данном материале мы решим вопрос о том как сделать переадресацию посетителей с мобильных устройств на мобильную версию вашего сайта.
Это очень простой и короткий материал, к тому же знать его полезно всем вебмастерам.
Итак, излаживаю код. Файл .htaccess:
Данный код ищет мобильные устройства и перенаправляет их на субдомен с сохранением адреса.
С помощью данной переадресации вы сможете сделать отдельное оформление, структуру сайт для посетителей с мобильных устройств и планшетов, что может очень пригодиться.
Как перенаправить посетителей мобильных устройств на мобильную верcию сайта при помощи htaccess
Примеры User-Agent мобильных устройств.
Это потрясающе удобно, если при заходе на сайт при помощи мобильного вас автоматически перенаправляет на мобильную версию.
Как определить пользователя с мобильного устройства
Нам необходима возможность изменять настройки веб-сервера при помощи файла htaccess. Так же должен быть включен ModRewrite.
Для определения мы используем значение User-Agent, которое передает броузер при запросе страницы. Каждый броузер по умолчанию имеет свое уникальное значение этого поля.
Пользователи, у которых User-Agent соответствует мобильным броузерам перенаправляется на мобильную версию.
В htaccess это выглядит так
RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|iphone|android)
RewriteRule ^(/)?$ http://m.domain.com/ [R=301]
Тестируем перенаправление
Проверить, выполняется ли редирект можно при помощи мобильного телефона, а можно при помощи программы
wget, задав через командную строку User-Agent
wget -U Samsung http://www.domain.com
User-agent для мобильных устройств/броузеров
Список User-Agent можно посмотреть
тут
Или более короткий список:
RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android)
Недостатки данного метода редиректа
Главный недостаток - посетитель не сможет зайти на ваш основной сайт с мобильного устройства, даже если очень захочет. Его будет постоянно перенаправлять на мобильную версию, а это не всегда удобно.
10 вставок кода для файла .htaccess
Файл .htaccess является сердцем веб сервера, который работает под управлением Apache. Именно здесь определяется реакция сервера на различные действия посетителя. в данном уроке приводится 10 с + приемов для использования в файле .htaccess.
Чтобы использовать вырезки кода, их надо просто скопировать в файл .htaccess
, который располагается в корневом каталоге вашего сервера Apache.
Предупреждение: перед редактированием файла .htaccess нужно всегда делать резервную копию работающего варианта!
Принудительная постановка замыкающего слеша
Считается, что замыкающий слеш в адресе URL очень хорошо помогает в области SEO сайта. Следующий код всегда будет добавлять слеш в адрес URL вашего сайта.
1 | <IfModule mod_rewrite.c> |
2 | RewriteCond %{REQUEST_URI} /+[^\.]+$ |
3 | RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] |
Предотвращаем хотлинк ресурсов сайта
Хотлинк (использование изображений вашего сайта другими сайтами в сети) является весьма популярной практикой, которая прожигает впустую трафик вашего сервера. Следующий код будет перенаправлять все хотлинк запросы к изображениям вашего сайта на определенную картинку, адрес которой задается в строке 6.
2 | #Замените ?mysite\.com/ на адрес вашего блога |
3 | RewriteCond %{HTTP_REFERER} !^http: |
4 | RewriteCond %{HTTP_REFERER} !^$ |
5 | #Замените /images/nohotlink.jpg на ваше изображение с запрещением хотлинка |
6 | RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] |
Перенаправляем мобильные устройства
Если ваш сайт не использует адаптивный дизайн, то будет очень полезно перенаправить мобильные устройства на специальную версию сайта.
02 | RewriteCond %{REQUEST_URI} !^/m/.*$ |
03 | RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR] |
04 | RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR] |
05 | RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR] |
06 | RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR] |
07 | RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR] |
08 | RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR] |
09 | RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR] |
10 | RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR] |
11 | RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR] |
12 | RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC] |
13 | #------------- Строка ниже исключает iPad |
14 | RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$ |
16 | RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] |
17 | RewriteRule ^(.*)$ /m/ [L,R=302] |
Принудительная загрузка файлов определенного типа
По некоторым причинам вам может потребоваться принудительная загрузка файлов определенных типов (например, MP3 или XLS). Нижеприведенный код будет предотвращать чтение таких файлов браузером и принудительно запускать загрузку.
2 | ForceType application/octet-stream |
3 | Header set Content-Disposition attachment |
6 | ForceType application/octet-stream |
7 | Header set Content-Disposition attachment |
Междоменное использование шрифтов для FireFox
При использовании встроенных шрифтов Firefox не позволяет брать их с внешних сайтов. Следующий код для файла .htaccess
позволит обойти данное ограничение.
1 | <FilesMatch "\.(ttf|otf|eot|woff)$" > |
2 | <IfModule mod_headers.c> |
3 | #Замените yourdomain.com на адрес вашего блога |
Ускоряем сайт с помощью кэширования .htaccess
Используя кэширование .htaccess можно существенно увеличить скорость сайта.
02 | <FilesMatch "\.(ico|pdf|flv)$" > |
03 | Header set Cache-Control "max-age=29030400, public" |
06 | <FilesMatch "\.(jpg|jpeg|png|gif|swf)$" > |
07 | Header set Cache-Control "max-age=604800, public" |
10 | <FilesMatch "\.(xml|txt|css|js)$" > |
11 | Header set Cache-Control "max-age=172800, proxy-revalidate" |
14 | <FilesMatch "\.(html|htm|php)$" > |
15 | Header set Cache-Control "max-age=60, private, proxy-revalidate" |
Отсекаем спам
Страдаете от спама на вашем блоге WordPress? Конечно, плагин Akismet может оказать существенную помощь, но и файл .htaccess
не останется в стороне от борьбы с заразой. Данный код предотвращает непосредственный доступ спам ботов к файлу wp-comments-post.php
, который формирует комментарии на блоге.
1 | # Заменяем yourdomainname на имя вашего домена |
2 | <IfModule mod_rewrite.c> |
4 | RewriteCond %{REQUEST_METHOD} POST |
5 | RewriteCond %{REQUEST_URI} .wp-comments-post\.php* |
6 | RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR] |
7 | RewriteCond %{HTTP_USER_AGENT} ^$ |
Приводим различные фиды к единому формату
Несколько лет назад использовались различные форматы фидов, такие как RSS, Atom или Rdf. В наши дни RSS определенно стал самым используемым. Данный код позволяет перенаправить все форматы фидов в один формат.
1 | # Заменяем URL на адрес своего блога |
3 | RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http: |
4 | RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http: |
Конфигурируем сайт для видео HTML5
HTML5 привнес много новшеств в мир веб разработки. Возможность проигрывать видео без использования FLASH является одной из лучших особенностей HTML5. Хотя нужно правильно сконфигурировать сервер для корректной работы с последними стандартами видео HTML5.
1 | RewriteCond %{REQUEST_FILENAME} !-f |
2 | RewriteCond %{REQUEST_FILENAME} !-d |
3 | RewriteCond %{REQUEST_URI} !=/favicon.ico |
7 | AddType video/webm .webm |
8 | AddType application/x-shockwave-flash swf |
Записываем ошибки PHP в журнал
Вместо вывода ошибок PHP на страницах вашего сайта (что дает информацию потенциальным хакерам…) можно записывать их в журнал (файл .log
), скрывая от посетителей.
1 | # отключаем вывод ошибок пользователям |
2 | php_flag display_startup_errors off |
3 | php_flag display_errors off |
4 | php_flag html_errors off |
5 | # заносим ошибки в журнал |
7 | php_value error_log /location/to/php_error.log |
Запускаем PHP в файлах JavaScript
При разработке кода JavaScript иногда требуется использовать PHP в файлах .js. Например, для получения данных из базы.
1 | AddType application/x-httpd-php .js |
2 | AddHandler x-httpd-php5 .js |
4 | <FilesMatch "\.(js|php)$" > |
5 | SetHandler application/x-httpd-php |
Спасибо
ОтветитьУдалитьВ вашей статье то 301 редирект то 302 используется и ни слова об этом в статье не написано!!!!
ОтветитьУдалить