Помогите нашему проекту

.htaccess - полезные примеры для сайта

.HTACCESS - Полезные примеры для сайта .HTACCESS - Полезные примеры для сайта

В этой статье собраны полезные примеры кода в файле .htaccess для оптимизации сайта и реализации таких задач как блокирование доступа к файлу, защита паролем папки или сайта, бан по IP или сети, редиректы, gzip сжатие, кэширование и т.д и т.п.

.htaccess — файл дополнительной конфигурации веб-сервера Apache, и подобных серверов. Позволяет задавать большое количество параметров для работы веб-сервера в отдельных каталогах или по всему сайту в целом.

Защита паролем папки/сайта

Для этого понадобится два файла, файл .htaccess кладем в папку, которую нужно защитить паролем и прописать в нем код:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

В файле, который указан в коде - "/path/to/.htpasswd", прописываем логин/пароль:

testuser:Passwordofuser

Блокируем доступ к файлу через htaccess

Если вам нужно заблокировать доступ к какому-либо файлу, например файл xmlrpc.php, который часто используют для взлома wordpress-сайтов, то пропишите в .htaccess следующий код:

# Protect Files
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>

Или вот так, если нужно заблокировать файлы в подпапке:

RedirectMatch 403 ^.*/wp-login.php$

Или вот так:

RewriteRule ^.*/wp-login\.php$ - [F,L]

Имейте в виду, если у вас используется nginx, то правила в htaccess не влияют на статические файлы, которые nginx обрабатывает.

Запрет POST запросов

Запретить POST запросы к URL с wp-login.php:

#Запрет POST запросов к wp-login кроме IP 33.33.33.222
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !^33\.33\.33\.222$
RewriteCond %{REQUEST_URI} ^/wp-login\.php$
RewriteRule .? - [F]

Злоумышленники любят в своих атаках использовать Post запросы.

Можно защититься от спамеров и ботов более хитрым способом: они часто не используют заголовки HTTP_REFERER и HTTP_USER_AGENT, в отличии от обычных браузеров, а значит можно запретить все POST запросы где в HTTP_REFERER не указан ваш сайт или же нет HTTP_USER_AGENT, пишем код в файл htaccess:

# Stop spam attack logins and comments
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) - [F,L]
</ifModule>

Бан по IP или сети при помощи htaccess

# бан по ip
order allow,deny
deny from 131.254.150.26
deny from 54.172.19.226
deny from 10.0.0.0/24
allow from all

Переадресация для wordpress сайта с http на https

Благодаря этому коду в файле .htaccess я смог настроить на своем wordpress сайте (в режиме мультисайта) переадресацию с http на https:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
#for SSL
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*) https://it-world24.ru/$1 [L,R=301]

Включение HSTS

Строгая транспортная безопасность HTTP (HSTS) — это механизм политики веб-безопасности, с помощью которого веб-сервер указывает, что он поддерживает подключения только по протоколу HTTPS. Для включения HSTS пропишите в файле .htaccess код:

<IfModule mod_headers.c>
# this domain should only be contacted in HTTPS for the next 12 months
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
</IfModule>

Запрещаем отображать сайт в iframe

Может возникнуть ситуация когда какие-либо сайты начинают отображать контент вашего сайта во frame-блоках, цели могут быть разные: мошенничество, clickjacking, воровство вычислительных ресурсов (чтобы не нагружать свой сервер) или просто воровство контента. Защититься можно от этого при помощи вот такого кода в файле htaccess:

<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
</IfModule>

Если эта защита не сработает, значит модуль mod_headers на хостинге не включен.

Редирект стандартной ленты WordPress на Feedburner

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^themes/feed/?([_0-9a-z-]+)?/?$ http://feeds2.feedburner.com/elims [R=302,NC,L]
</IfModule>

301 redirect в htaccess между страницами

Тут все просто:

Redirect 301 /index.php http://site.ru/
Redirect 301 /folder /folder2/folder3
htaccess и 301 редирект с WWW на без WWW

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sait\.ru$ [NC]
RewriteRule ^(.*)$ http://sait.ru/$1 [R=301,L]

301 редирект с одного домена на другой

Если сайт изменил свой домен и не хочется потерять вес страниц, то замените содержимое .htaccess (файл находится в корне папки старого домена), на следующее (вместо new-site.ua укажите новый домен):

<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://new-site.ua/$1 [R=301,L]

Увеличиваем количество выделяемой ОЗУ

Бывает можно встретить вот такую ошибку:

Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 72 bytes) in

Она говорит о том, что CMS не хватает выделенной под нее оперативной памяти.

Один из способов увеличения объема выделенной оперативной памяти - через файл .htaccess, пишем в нем:

php_value memory_limit 64M

Если не помогло, значит хостинг запретил изменять php параметры через htaccess

Включаем GZip сжатие

Вот такой код для файла htaccess рекомендует WordPress.org:

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

Или почти такой же код рекомендует известный сайт gtmetrix.com:

<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>

Кэширование статического контента в браузере

Следующий пример для htaccess использует расширение mod_expires и включает кеширование всего контента кроме некоторых форматов файлов:

FileETag MTime Size
ExpiresActive On
ExpiresDefault "access plus 10 years"
<FilesMatch \.(html|xhtml|xml|shtml|phtml|php)$>
ExpiresActive Off
</FilesMatch>

Или наоборот кэшируем лишь определенные форматы:

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>

Вот еще пример кода:

ExpiresActive On
ExpiresDefault A0

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A604800
</FilesMatch>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
ExpiresDefault A10800"
</FilesMatch>

Следующие директивы, как альтернатива предыдущему методу, используют расширение Apache под названием mod_header и регламентируют, как клиент будет хранить файлы в кэше, каждая директива говорит клиенту хранить типы файлов в течении разного интервала времени:

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
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>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>
# NEVER CACHE
<FilesMatch "\.(html|htm|php|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

Если часть CSS и JS-файлов, изображений создаются динамически, например изображения предпросмотра и ряд стилей могут создаваться при помощи PHP на лету, то выручит вот такой код:

ExpiresActive On
ExpiresByType text/css A315360000

Закрываем индексацию через .htaccess

Например закрываем индексацию изображений:

<FilesMatch "\.(gif|jpe?g|png)$">
Header set X-Robots-Tag "noindex"
</FilesMatch>

Добавление или удаление слэша в конце url

Добавляем слеш в конце url

Если нужно редиректить например с адреса http://it-world24.ru/test на адрес http://it-world24.ru/test/, то используйте следующий код:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Удаляем слеш в конце url

Если нужно редиректить например с адреса http://it-world24.ru/test/ на адрес http://it-world24.ru/test, то используйте следующий код:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

Отключение вывода ошибок php

Если не скрывать вывод ошибок php, то сайт становится подтвержденным уязвимости "Full Path Disclosure", ее суть заключается в том, что благодаря ошибкам можно узнать полный путь к файлам вызывающим эти ошибки, то есть узнать структуру папок на хостинге, чтобы этого не было в htaccess можно отключить вывод php ошибок:

php_flag display_errors off

если же это вызвало ошибку "internal server error", то удалить эту строку и отключить вывод ошибок в файле "php.ini" при помощи строки:

display_errors = 'off'

Или отключите в админке хостинга, например на моем Хостинг Украина это отключается через админку.

22 комментарии

  • LesShats
    LesShats 15.10.2019 16:43 Комментировать

    Obeliva 5mg (Обетихолевая кислота)- Обелива (Obeticholic Acid) - аналог Ocaliva
    представляет собой лекарство на основе компонентов,
    эффективно воздействующих на организм.
    Если употреблять таблетки правильно, можно справиться с опасной болезнью:
    Биллинарным циррозом печени.
    Сходите в больницу и пообщайтесь с доктором,
    который назначит индивидуальную схему приема таблеток.
    Можно Obeliva 5mg (Обетихолевая кислота)- Обелива (Obeticholic Acid) - аналог Ocaliva купить быстро, сделав несколько кликов.
    Этот современный препарат разработан для пациентов, страдающих от цирроза печени.
    Болезнь сопровождается неприятными симптомами, с которыми можно быстро справиться.
    Употребляйте таблетки в соответствии с разработанной схемой терапии, чтобы не
    столкнуться с «побочками».

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

    Противопоказания
    При наличии этих противопоказаний принимать лекарство нельзя:
    • аллергия на активные компоненты препарата;
    • не достижение пациентом возраста 18-ти лет;
    • наличие хронических заболеваний, которые могут обостриться;
    • наличие прочих проблем, которые связаны с функцией печени;
    • прием антибиотиков и медикаментов на основе зверобоя.
    На Obeliva 5mg (Обетихолевая кислота)- Обелива (Obeticholic Acid) - аналог Ocaliva отзывы
    можно прочесть на разных сайтах.
    Покупайте лекарство с доставкой выгодно онлайн или в телефонном режиме.
    Наши специалисты всегда готовы ответить на возникшие вопросы.

    Способ применения
    На Obeliva 5mg (Обетихолевая кислота)- Обелива (Obeticholic Acid) - аналог Ocaliva цена
    приемлема. Начинать прием лекарства нужно с таблетки в день.
    После того, как Вы пропьете препарат три месяца,
    можно увеличивать дозировку, находясь под наблюдением доктора.
    Специалист сделает все правильно, чтобы Вы не столкнулись с рецидивом.
    Помните, что ни в коем случае нельзя прекращать прием медикамента самостоятельно.

    Побочные явления
    Нарушение разработанной схемы лечения приводит к таким побочным эффектам:
    • постоянное ощущение усталости; • зудящие высыпания на коже;
    • резкое увеличение температуры без причины;
    • нестабильное функционирование сердца;
    • ощущение тошноты, рвота.

    На Obeliva 5mg (Обетихолевая кислота)- Обелива (Obeticholic Acid) - аналог Ocaliva стоимость
    можно уточнить у сотрудников сайта.
    Каждому пациенту нужно проконсультироваться с лечащим врачом,
    который назначит подходящую схему приема таблеток,
    и тогда побочные явления будут полностью исключены.




    ocaliva

  • Billyges
    Billyges 14.10.2019 20:09 Комментировать

    If you’re upset about your weight and want to lose a little more, get this…

    An overweight mother with pre-diabetes has just SHOCKED the medical
    community by losing an unheard of 22lbs pounds in just 13 days…

    ....Without starving herself, she lost a total of 37lbs in the first month!
    -> CLICK HERE to see her Transformation Pics!

    ...Even without exercising, she went on to burn off 84lbs (almost a pound a day)
    and eliminated any sign of diabetes or any other life-ending diseases.

    And the amazing thing is…

    All she did was this D.I.Y. “carb-pairing” trick that reconditions your 3 female
    weight-loss hormones to drastically accelerate fat-burning while still eating the
    foods you love.

    Check it out for yourself…

    “Carb-Pairing” Melts Away 37 Pounds in Just 20 Days (WOMEN ONLY)

    Enjoy!

  • MariaZef
    MariaZef 10.10.2019 16:29 Комментировать

    Приветствую вас
    Идет молва
    Очень дешевые препараты


    яквинус цена +в германии

  • Enlarve
    Enlarve 10.10.2019 16:13 Комментировать

    Мы знаем, что онлайн-знакомства частенько могут разочаровывать, поэтому мы образовали собственный онлайн-сервис с одной идеей: сделать он-лайн-знакомства бесплатными, легкими и увлекательными для каждого. Еще не можете отыскать свою другую половинку?
    Однако имеется лучшая замена этому - вэб-страницы знакомств без регистрации в Российской федерации. Можно в любое комфортное именно для вас свободное время найти родственную душу легко на этом специализированном блоге, где множество современных людей ежедневно разговаривают друг с другом.Всего несколько минуток милого контакта сумеют изменить вашу сегодняшнюю жизнь, в ней, наконец, возникнет любовь и благополучие.
    Не важно, где вы всегда живете, в России либо в другом крае, у вас имеется возможность знакомиться с представителем сильного пола либо женщиной из России.
    Для этой цели вам не требуется проходить процедуру регистрации на веб-сайте, дабы иметь доступ к базе информации о других пользователях.


    Мы точно знаем, что он-лайн-знакомства очень часто могут разочаровывать, именно поэтому здесь мы сформировали собственный интернет-проект с одной идеей: сделать онлайн-знакомства бесплатными, легкими и интересными ради всех. Еще не можете найти свою другую половинку?


    Однако имеется в наличии отличная замена этому - страницы вэб-сайтов знакомств без регистрации в Российской федерации. Не представит труда в подходящее вам свободное время подыскать близкую душу без особых затруднений на нашем спец вебсайте, где массу граждан каждый день беседуют вместе.Всего несколько минут приятного общения позволяют поменять вашу жизнь, в которой, наконец, поселится страсть и счастье.
    Независимо от того, где вы всегда живете, в Нашем государстве либо в ином крае, у вас есть возможность знакомиться с мужчиной или девушкой из Нашего государства.
    Для этого не требуется проходить процедуру регистрации на сайте, дабы получить доступ к базе данных.
    Все разговоры онлайн и знаки заинтересованности в качестве даров останутся индивидуальными и не раскрываются.
    Если у вас великое желание встретить другую половинку намного раньше, оформите ВИП страницу, на котором работает услуги личных требований. Тем, кто не любит спешности в поиске близкого человека, сможет радоваться приятным разговором. Подарите для себя шанс стать счастливым.


    Сайт знакомств Сыктывкар : лулу сайт знакомств

  • Robertgulge
    Robertgulge 09.10.2019 16:48 Комментировать

    Добрый день!
    Даже очень незабываемый сайт.

    Масса приколов...PVP, Скорость, Скорость, МДМА, и т.д.
    Переходи на сайт:

    http://yximofavyqyw.tk


  • snipplr.com
    snipplr.com 03.10.2019 23:37 Комментировать

    I believe you have mentioned some very interesting points, appreciate it for the post.

  • SoviaNef
    SoviaNef 30.09.2019 17:20 Комментировать

    Удивительные фарфоровые статуэтки предлагает купить Ломоносовский фарфоровый завод.

  • DarioDen
    DarioDen 28.09.2019 17:43 Комментировать

    «А что ещё можно установить для подъездного домофона, чтоб провода дополнительные не прокладывать» - купите себе УКП-66 от Шнайдер Электрик (правда делаются в Марий Эл, но контроль качества остался), там 6 цветовых решений, никаких проводов, правда надо батарейки, но их на несколько лет хватает. Только обязательно разберитесь с совместимостью, с какими-то домофонами она вообще не работает, а с какими-то глючит по разному

  • Edwardfoozy
    Edwardfoozy 23.09.2019 17:05 Комментировать

    адвокаты Запорожья

    днепропетровск

  • EdwardAcido
    EdwardAcido 20.09.2019 09:23 Комментировать

    Hello everyone!
    Dating site for sex, hot bitches are waiting for your message. >>>Click on me

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Back to top

Помогите нашему проекту