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

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

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

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

  • Vladimirbsx
    Vladimirbsx 28.01.2021 02:20 Комментировать

    удалите,пожалуйста! .

  • Fbgguaps
    Fbgguaps 28.01.2021 01:53 Комментировать

    viagra oklahoma city generic viagras names order viagra in australia https://canadianpharmacy-usx.com/organic.htm - byy viagra online ’

  • KbbtFoep
    KbbtFoep 27.01.2021 14:45 Комментировать

    where to buy cialis with paypal canada viagra buy cialis online in usa https://xz-pharmacyonline.com - buy generic viagra online ’

  • Normanfek
    Normanfek 27.01.2021 06:43 Комментировать

    Доставка алкоголя Новосибирск
    https://dostavkaalcogolyavnovosibirske.ru/ Доставка алкоголя Новосибирск

  • arendarivan
  • AhmdFoxia
    AhmdFoxia 27.01.2021 03:38 Комментировать

    order generic cialis female cialis online cheap cialis tablets http://cialmenshoprx.com/ - cialis blog ’

  • BrianTwiva
    BrianTwiva 26.01.2021 21:19 Комментировать

    We live in a frenzied cadency, worrisome to catch the aggregate: how to write an essay last minute holt homework help write an essay on my school picnic, come to c clear up, school, courses, while not forgetting to allocate days for recreation and entertainment. But every now it happens that grandiose plans can be disrupted by unlooked-for circumstances.

    You are studying at a illustrious University, but it so happened that fitting to a solid tons of absences and the decay of the next period, you were expelled. But do not despair. Practically any preceding swotter can recover without much difficulty. The delivery course of action is insincere near harmonious completely important happening — the reason an eye to the deduction. All causes can be divided into two groups. Reflect on these groups, as highly as the order of bettering, depending on whether the producer belongs to a certain of the groups.

    Subtraction for a gracious defence or at your own requisition
    Valid reasons are affection, pregnancy, military serve, and others that do not depend on us. Also, if you opt for, as a replacement for example, to chime in training, which currently prevents you from building a career. So, you dearth to:
    how to write an essay on yourself homework help websites for college students how do i write a conclusion for an essay
    write an application to the rector looking for reinstatement to the University;
    get up all requisite documents (passport, instruction certificate, hypothetical certificate and documents confirming your insufficiency to disrupt your studies);
    providing all of the above documents to the University.
    If you conscious respecting unchained, you can also be accepted on a budget, branch of knowledge to availability. All this is plenty through despite restoration, but if more than 5 years tease passed since the removal, you may smooth acquire to in the flesh meet with the Dean of the faculty.

    Removal for the purpose a disrespectful why and wherefore
    Loser to perform and, as a sequel, repudiation from the University well-earned to their own laziness and irresponsibility is not encouraged, but you can also recover, although it is a wee more thorny and solitary on a commercial basis. Initially, the procedure seeking bettering is the unmodified as in the course of a tolerable reason. Additional conditions over the extent of spare studio at the University are already synchronize by him, so you demand to association the Dean's bit and elucidate what else is needed in the direction of recovery. You when one pleases also requirement to into with the Dean of your faculty. Deliverance in this in the event that purpose simply be on a paid basis.
    who can write an essay for me accounting homework help free how to write a good apush essay
    It is very much laborious to reading at a higher academic routine, it requires a lot of attempt, obdurateness and time. Various factors can hamper you from closing a sitting: sickness, tenseness, or homely idleness. And if you were expelled utterly no boner of your own, then do not gloominess, because at any tempo you can recover and continue your studies both in your University and in another, if you abruptly want to transmute your directorship in the retrieve of education.

  • loveawake.ru
    loveawake.ru 26.01.2021 16:03 Комментировать

    Welcome to the world of adult Dating loveawake.ru

  • Fbgguaps
    Fbgguaps 26.01.2021 14:47 Комментировать

    buying viagra with paypal viagra soft tabs gneeric viagra online https://canadianpharmacy-usx.com/organic.htm - free viagra sample uk ’

  • Davidcwb
    Davidcwb 26.01.2021 09:59 Комментировать

    coin

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

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

Back to top

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