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

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

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

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

  • Willardjinna
    Willardjinna 28.01.2022 18:33 Комментировать

    Вот уж слышна весть с небес любит Бог

  • RonaldSen
    RonaldSen 28.01.2022 18:27 Комментировать

    Иисус Спаситель Божий Сын Святой

  • Ceri138.net
    Ceri138.net 28.01.2022 18:17 Комментировать

    Heya outstanding website! Does running a blog such as this
    require a lot of work? I've absolutely no knowledge of coding however I had been hoping to start my own blog soon. Anyways,
    if you have any ideas or tips for new blog owners
    please share. I understand this is off subject
    nevertheless I just had to ask. Appreciate it!

  • DonaldTheno
    DonaldTheno 28.01.2022 17:17 Комментировать

    мужчина бабник как определить
    как влюбить в себя мужчину
    мужчина бабник как себя вести
    как исправить бабника
    как понравиться мужчине
    психология
    что делать с бабником
    любовь
    можно ли исправить бабника
    как завоевать мужчину

    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина

    Как из бабника сделать семьянина

    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина

  • DonaldTheno
    DonaldTheno 28.01.2022 17:15 Комментировать

    психология
    любовь
    как понравиться мужчине
    мужчина бабник почему
    как привлечь мужчину
    как завоевать мужчину
    как привлечь мужчину в свою жизнь
    мужчина бабник причины
    мужчина бабник как себя вести
    что делать с бабником

    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина

    Как из бабника сделать семьянина

    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина
    Как из бабника сделать семьянина

  • startabcru
    startabcru 28.01.2022 16:57 Комментировать

    Школа экзаменам ПДД в Иркутске – теперь целиком отличный вариант получить права в владельца версии В, также, в печали, не большая часть курсов имеют возможность указать правда отличные костяк специально для дебютных автомобилистов, также многие водителей перестали водить авто, пусть и с новых прав. Современная автомобильная школа Старт в г Иркутске частный инструктор по вождению иркутск отличается проверенным тактикой также исключительной методикой преподавания неопытных шоферов. Наша автошкола специализируемся собственно для занятий категории В, выделяя под потенциальных водителей прекрасные предложение обучения: гибкий расписание ПДД плюс практические занятия, безопасные машины из автоматическими и ручными коробка передач, приватный площадка, новые симуляторы в аудиториях, умеренные наборы студентов, вероятность изучения в типа онлайн к тому же аналогичные привилегии, которые позволят легко изучать теорию. Более того автомобильная школа START тщательно подходит к приема учителей, какие подготавливают не только лишь внимательно передвигаться, плюс к тому же верно реагировать касательно непредвиденных ситуации на городе. Звоните затем одержите грандиозную бонус на курс в автошколу автомобильной школой.

  • Juliusbeatt
    Juliusbeatt 28.01.2022 16:28 Комментировать

    [url=http://www.youtube.com/watch?v=6j2v9uJw7m8]Иисус Спаситель Божий Сын Святой[/url]

  • JeffreyDaync
    JeffreyDaync 28.01.2022 16:27 Комментировать

    [url=https://zen.yandex.ru/video/watch/61f38cdb89220775602e1a84]Иисус Спаситель Божий Сын Святой[/url]

  • Juliusbeatt
    Juliusbeatt 28.01.2022 14:15 Комментировать

    Вот уж слышна весть с небес любит Бог

  • replica designer handbags
    replica designer handbags 28.01.2022 13:07 Комментировать

    Does your site have a contact page? I'm having trouble locating it but, I'd like to shoot you an email.
    I've got some creative ideas for your blog you might be interested in hearing.
    Either way, great blog and I look forward to seeing it develop over
    time.

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

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

Back to top

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