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

.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'

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

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

  • HollisCep
    HollisCep 15.12.2019 08:17 Комментировать

    Привет мои хорошие.
    Мой ник Алина.
    Познакомлюсь с парнем для встречи. Приеду к тебе на район или встримся у меня. Живу недалеко.

    Мой аккаунт

  • RebeccaGoniBesee
    RebeccaGoniBesee 08.12.2019 01:43 Комментировать

    Official link


    hydra onion ссылка

  • DarioDen
    DarioDen 03.12.2019 19:50 Комментировать

    Что-то много жалоб по работе так называемой УКП-66, кто про брак пишет, кто про несовместимость, кто про дохлые батарейки, кто про «кривые руки». Кто-то поможет, может, хотя бы с совместимостью разобраться. У нас в городе не могу их найти, а в интернет-магазинах ни чего толком про это сказать не могут, как и обслуживающая компания

  • Simaelogs
    Simaelogs 02.12.2019 02:06 Комментировать

    Чтобы вылечить рак, требуется дорогостоящее и эффективное
    лечение.
    Медикамент Ксалкори (Crizotinib) - Xalkori (Кризотиниб)
    предназначен для терапии немелкоклеточного рака лёгких. Новейшее средство успело отлично зарекомендовать себя в терапии серьёзного заболевания.

    Состав и свойства
    В эффективный препарат последнего поколения входит активное
    лекарственное вещество кризотиниб, которое является
    селективным ингибитором тирозинкиназы и киназы анапластической
    лимфомы.
    Также в препарат включены дополнительные вещества,
    которые способствуют лучшей абсорбции лекарственного
    вещества.
    Лекарство последнего поколения прекращает дальнейшее развитие
    злокачественной опухоли и убивает раковые клетки.
    В результате воздействия средства происходит индуцирование
    кризотинибом опухолевых клеточных структур.
    Препарат Ксалкори – мощное противоопухолевое средство,
    которое часто назначается врачами, если предыдущее лечение
    рака лёгких не принесло положительного результата.
    Противоопухолевое воздействие средства является дозозависимым.
    Чтобы медикамент
    Ксалкори (Crizotinib) - Xalkori (Кризотиниб) купить по сниженной цене, обращайтесь в нашу интернет аптеку.

    Показания
    • ALK-позитивный немелкоклеточный рак; • ROS-1-позитивный рак лёгкого.

    Противопоказания
    • гиперчувствительность к составу средства; • беременность; • лактация; • детский возраст;
    • печёночная недостаточность; • совместный приём с ингибиторами CYP3A.

    Способ применения
    Приём данного лекарства не зависит от употребления пищи. Капсула проглатывается,
    не разжёвываясь. Требуется непременно запить медикамент чистой водой.
    Медики рекомендуют дозу препарата - 250 мг (2 раза в сутки).
    Не следует удваивать лекарственную дозировку при пропуске употребления средства.
    Коррекция дозы зависит от выраженности CTCAE.
    При выраженных побочных эффектах лекарство временно отменяется.
    Однако на средство Ксалкори (Crizotinib) - Xalkori (Кризотиниб) отзывы
    встречаются лишь положительные. Препарат хорошо переносится организмом.

    Побочные реакции
    • головокружения; • нейропатия; • понижение аппетита; • тошнота; • диарея; • запор;
    • нарушения зрения.

    Где купить лекарство
    У нас на сайте каждый покупатель может купить лекарство по приемлемой стоимости.
    На медикамент Ксалкори (Crizotinib) - Xalkori (Кризотиниб) цена доступна каждому
    покупателю. Вы можете заказать доставку медикамента по указанному номеру телефона либо
    оформить покупку прямо в форме заказа. Если вам требуется лекарство
    Ксалкори (Crizotinib) - Xalkori (Кризотиниб) стоимость в нашей интернет аптеке
    намного ниже, чем в других пунктах продажи. Приобретение медикамента на нашем
    сайте гарантирует вам высокое качество нужного лекарства и экономию денег.
    Вы можете заказать необходимое лекарство, не выходя из дома, прямо сейчас!



    Кризалик

  • SemmionsMaymn
    SemmionsMaymn 30.11.2019 03:11 Комментировать

    Hello friends, recently I got into the hands of a unique site where You need to predict how the value will change, up, or down, You have only two buttons to answer, so if you even randomly press the buttons, Your chances are 50% to 50%, and thanks to special techniques that you will find after registration, Your balance will increase every 60 seconds.
    In one minute you can earn from one dollar to infinity!
    This is a unique way to earn money on the Internet today, the service has been working since 2014, and always pays the money earned on time.
    After registration, you will receive a BONUS +10 000b to the account, and will be able to fully test this wonderful service.

    Free registration in this service + 10 000b to the account!

    Try it for FREE.
    http://bit.ly/ol-en2

  • MichaelZoots
    MichaelZoots 26.11.2019 16:15 Комментировать

    Александр Пушкин родился в Москве 6 июня 1799 г. Он рос вместе со старшей сестрой и младшим братом. Подробнее в яндексе.

  • MariaZef
    MariaZef 21.11.2019 12:52 Комментировать

    Доброго времени суток
    Рекомендует врач
    Очень дешевые препараты


    аптека ламивудин

  • DarioDen
    DarioDen 19.11.2019 13:01 Комментировать

    Здравствуйте! У вас на сайте написано, что можно поменять домофонные трубки на УКП-66? Как это происходит? Такая трубка подойдет? - Здравствуйте, к сожалению не подойдет

  • BerratorBoutt
  • DarioDen
    DarioDen 13.11.2019 16:02 Комментировать

    Кто знает нормальные компании, разбирающиеся в подъездных домофонах мне надо подключить UKP-66 к домофону, сам попробовал, не получается

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

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

Back to top

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