Как настроить .htaccess файл для Сайта на чистом html? — Хабр Q&A
Привет Всем!Как настроить .htaccess файл для Сайта на чистом html?
404- страницу?
Если возможно кэш для браузеров.
Я новичок в этом деле(, сильно не ругайте.
Есть вот такие настройки, но не чего не работает(((
<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>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# html
ExpiresByType text/html "access plus 0 seconds"
# XML
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
# RSS
ExpiresByType application/rss+xml "access plus 1 hour"
# Favicon
ExpiresByType image/x-icon "access plus 1 week"
# Картинки
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
# HTC файлы (например css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Нестандартные шрифты сайта
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS и javascript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# Cache-Control браузера
<ifModule mod_headers.c>
# 30 дней
<filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch ".(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch ".(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch ".(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
<IfModule mod_setenvif.c>
#Эта конструкция для говнобраузера
#Запрет отдачи HTTP-заголовков Vary
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>
DirectoryIndex index.(\..*|Entries.*|Repository|Root|Tag|Template)$»>
Order allow,deny
</FilesMatch># Don’t show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 «The requested file favicon.ico was not found.
</Files>
# Set the default handler.
DirectoryIndex index.php index.html index.htm
# Override PHP settings that cannot be changed at runtime. See
# sites/default/default.settings.php and drupal_initialize_variables() in
# includes/bootstrap.inc for settings that can be changed at runtime.# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_flag magic_quotes_gpc off
php_flag magic_quotes_sybase off
php_flag register_globals off
php_flag session.auto_start off
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation off
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off
</FilesMatch>
</IfModule># Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# Block access to «hidden» directories whose names begin with a period.(.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ — [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ — [T=text/javascript,E=no-gzip:1]
<FilesMatch «(\.js\.gz|\.css\.gz)$»>
# Serve correct encoding type.
Header append Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
</IfModule>
.htaccess - полезные примеры для сайта
В этой статье собраны полезные примеры кода в файле .htaccess для оптимизации сайта и реализации таких задач как блокирование доступа к файлу, защита паролем папки или сайта, бан по IP или сети, редиректы, gzip сжатие, кэширование и т.д и т.п.
.htaccess — файл дополнительной конфигурации веб-сервера Apache, и подобных серверов. Позволяет задавать большое количество параметров для работы веб-сервера в отдельных каталогах или по всему сайту в целом.(.*) 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 на хостинге не включен.(.*)$ 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.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
Закрываем индексацию через .(.*)(/)$ $1 [L,R=301]
Отключение вывода ошибок php
Если не скрывать вывод ошибок php, то сайт становится подтвержденным уязвимости "Full Path Disclosure", ее суть заключается в том, что благодаря ошибкам можно узнать полный путь к файлам вызывающим эти ошибки, то есть узнать структуру папок на хостинге, чтобы этого не было в htaccess можно отключить вывод php ошибок:
php_flag display_errors off
если же это вызвало ошибку "internal server error", то удалить эту строку и отключить вывод ошибок в файле "php.ini" при помощи строки:
display_errors = 'off'
Или отключите в админке хостинга, например на моем Хостинг Украина это отключается через админку.
Стандартный .htaccess - студия Клондайк
Для единообразия формирования URL страниц сайтов, и предотвращения появлений дубликатов страниц, вводится стандартная часть файла .htaccess.
Данный конфиг позволяет решить следующие задачи:
- Активация канонических директив
- Активация рекомендованных директив "Битрикс монитор качества"
- Установить основное зеркало сайта с www сохраняя протокол http или https
- Установка основного зеркала сайта без www сохраняя http или https
- Перенаправление HTTP > HTTPS
- Перенаправление HTTPS > HTTP
- Удалить любое количество "/" стоящих рядом; site.ru////catalog//item > site.ru/catalog/item
- Удалять "/" в конце URL если это файл
- Добавлять "/" в конце URL если его там нет и это не файл. (работает в связке с вышестоящим, иногда требуется одно, иногда другое)
- Удалить из URL index.php
- Компрессия статического контента для GooglePagespeed тест
- Добавлен AddType svg
Последовательность установки:
- Вставить код в начале .htaccess
- При вставке требуется указать правильное зеркало сайта, раскоментировав нужное, по умолчанию удаляет WWW, и включает HTTPS
- Удалить старый redirect перенаправление на основное зеркало.
- Если основное зеркало сайт HTTPS, то внесите протокол в robots.txt Host: https://site.ru, для http не требуется.
- Убедитесь что SSL сертификат выпущен и для зеркала www, в противном случае редирект не сработает
- При установке HTTPS основным зеркалом, перейти на свой сайт и убедиться в отсутствие blocked:mixed
Полезные сервисы
Код конфигурационного файла каталога .htaccess.
############################################################################
#### Стандартный .htaccess для проектов студии Клондайк, версия 4.6 ####
############################################################################
RewriteEngine On
# Директива включает редиректы.
RewriteBase /
# Без директивы (.*) = /$1 будет /var/wwww/site/web/$1 с директивой = /$1
Options +FollowSymLinks
# Разрешает переход по символическим ссылкам.
php_flag display_errors off
# запретить отображение ошибок (требование монитора качества)
php_flag allow_url_fopen off
# запретить использовать удаленные файлы (требование проактивной защиты)
############################################################################
#### Выбор основного зеркала (с www или без www) ####
############################################################################
# 1. Удалить www
RewriteCond %{ENV:HTTPS} on
#Если включен https
RewriteRule .(.*)$ %1/ [R=301,L]
# Удалить index.php из URL.
############################################################################
#### Убираем повторяющиеся слеши (/) в URL ####
############################################################################
RewriteCond %{THE_REQUEST} //
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{QUERY_STRING} !http(s|)://
# Убедимся что это не урл в GET
RewriteRule .* /$0 [R=301,L]
# Исключаем все лишние слеши.
############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку) ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$
# Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d
# И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
# Является файлом.(.*)$ $1/ [L,R=301]
# Добавляем слеш в конце.
############################################################################
#### Компрессия статического контента для гугл спид тест ####
############################################################################
<IfModule mod_deflate.c>
AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE image/svg+xml
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
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/svg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
</IfModule>
<IfModule mod_headers.c>
<filesmatch "\.(ico|flv|jpg|jpeg|webp|png|gif|css|swf|woff|pdf)$">
Header set Cache-Control "max-age=31536000, public"
</filesmatch>
<filesmatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, private, must-revalidate"
</filesmatch>
<filesmatch "\.(pdf)$">
Header set Cache-Control "max-age=86400, public"
</filesmatch>
<filesmatch "\.(js|otf|ttf|woff|woff2)$">
Header set Cache-Control "max-age=31536000, private"
</filesmatch>
</IfModule>
############################################################################
#### Конец общей части, далее следует собственные директивы .htaccess ####
############################################################################
Если есть проблема с зацикливанием https
В случае работы nginx+apache возможен циклический редирект HTTP>HTTPS вызваны неправильными настройками сервера (не файла), Используя на backand http вместо https и по какой-то причине не могут передать протокол обращения от nginx в apache. В таком случае нужно отключить редирект на https и исправить ошибку или в веб сервере или подобрать подходящее условие, как правило подойдет:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} !on
RewriteRule (.(.*)index\.htm$ https://%{HTTP_HOST}/$1 [R=301,L]
############################################################################
#### Компрессия статического контента для гугл спид тест ####
############################################################################
<IfModule mod_deflate.c>
AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE image/svg+xml
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
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/svg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
</IfModule>
<IfModule mod_headers.c>
<filesmatch "\.(ico|flv|jpg|jpeg|webp|png|gif|css|swf|woff|pdf)$">
Header set Cache-Control "max-age=31536000, public"
</filesmatch>
<filesmatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, private, must-revalidate"
</filesmatch>
<filesmatch "\.(pdf)$">
Header set Cache-Control "max-age=86400, public"
</filesmatch>
<filesmatch "\.(js|otf|ttf|woff|woff2)$">
Header set Cache-Control "max-age=31536000, private"
</filesmatch>
</IfModule>
############################################################################
#### Конец общей части, далее следует собственные директивы .htaccess ####
############################################################################
Для создания редиректов старых URL на новые, воспользуетесь стандартом по собору редиректов. Убедиться что все ссылки одают ответ 301.
.htaccess для новичков
- Главная
- ->
- Материалы
- ->
- .htaccess для новичков
Reg.ru: домены и хостинг
Крупнейший регистратор и хостинг-провайдер в России.
Более 2 миллионов доменных имен на обслуживании.
Продвижение, почта для домена, решения для бизнеса.
Более 700 тыс. клиентов по всему миру уже сделали свой выбор.
Перейти на сайт->
Бесплатный Курс "Практика HTML5 и CSS3"
Освойте бесплатно пошаговый видеокурс
по основам адаптивной верстки
на HTML5 и CSS3 с полного нуля.
Начать->
Фреймворк Bootstrap: быстрая адаптивная вёрстка
Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.
Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.
Верстайте на заказ и получайте деньги.
Получить в подарок->
Бесплатный курс "Сайт на WordPress"
Хотите освоить CMS WordPress?
Получите уроки по дизайну и верстке сайта на WordPress.
Научитесь работать с темами и нарезать макет.
Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!
Получить в подарок->
*Наведите курсор мыши для приостановки прокрутки.
Назад
Вперед
.htaccess для новичков
Файлы .htaccess используются для настройки веб-серверов (в основном речь идет об Apache, но не только). Несмотря на "странное" расширение файла, это обычный текстовый файл, который можно отредактировать в любом текстовом редакторе.
В данном материале мы рассмотрим основные моменты, которые помогут Вам при разработке своих проектов.
Для того, чтобы работать с файлами .htaccess локально и иметь возможность тестировать их, Вы можете использовать набор "Денвер", после установки которого получите на своем компьютере мини-сервер с установленными и настроенными Apache, PHP и MySQL.
Файлы .htaccess имеют такой же формат, как и главный конфигурационный файл Apache - httpd.conf. Многие из настроек httpd.conf можно задать с помощью .htaccess, и наоборот.
"Настройки, заданные в .htaccess, перезапишут одноименные настройки из главного конфигурационного файла для той директории, в которой располагается данный файл .htaccess" (включая поддиректории)."
Иногда еще файлы .htaccess называют файлами динамической конфигурации, поскольку они считываются сервером при каждом запросе к директории, в которой они содержатся.
Это означает, что изменения, внесенные в .htaccess, вступают в силу немедленно, не требуя перезагрузки сервера (в отличие от настроек, заданных в главном конфигурационном файле - httpd.conf). Также это значит, что мы немного теряем в производительности, однако такое решение очень полезно, когда у нас нет доступа к главному файлу настроек сервера.
Теперь мы имеем общее представление о файлах ./]+ означает, что в указанном месте могут находиться любые символы кроме прямого слэша 1 или более раз. По сути, таким шаблоном регулярного выражения мы охватываем три части URL-адреса: turntables, technics и sl1210
На практике переписывание URL-адресов может быть (и обычно бывает) более сложным и позволяет достичь интересных результатов. В рамках данной статьи мы не будем рассматривать этот момент глубже.
Задание произвольных страниц ошибок
Показывать людям страницы ошибок, заданные "по умолчанию", уже не здорово. Многие сайты используют возможности, предлагаемые файлом .htaccess для того, чтобы превратить страницы ошибок на сайте в нечто юмористическое и поднимающее пользователю настроение. И это правильно.
Как минимум имеет смысл настроить страницы ошибок так, чтобы они не выбивались из общего дизайна сайта. Давайте рассмотрим это на простом примере:
ErrorDocument 404 "/404.html"
Вот и все, что нам нужно. Теперь, когда случится ошибка 404, то будет отображена страница с именем 404.html из корня нашего сайта. Разумеется, можно дать ей любое имя и разместить где нам удобно.
Аналогичным образом мы можем настроить отображение своих произвольных страниц и для других ошибок сервера (403, 500 и т.п.)
Ограничение доступа к определенным ресурсам
Используя .htaccess мы можем защитить паролем доступ к любому файлу или директории по отношению ко всем пользователям, либо на основании их IP-адреса или домена. Это, кстати, одна из наиболее распространенных областей применения .htaccess.
Чтобы предотвратить доступ ко всей папке, мы должны написать такой код:
AuthName "Username and password required"
AuthUserFile /path/to/.htpasswd
Require valid-user
AuthType Basic
Файл .htaccess с таким кодом нужно сохранить в той папке, доступ к которой мы хотим ограничить.
Директива AuthName определяет текст сообщения, которое будет отображаться в диалоговом окне.
Директива AuthUserFile указывает путь до файла .htpasswd (файл, содержащий пароли для доступа к ресурсу).
Директива Require говорит о том, что только пользователь, прошедший авторизацию, может получить доступ к информации.
Такой тип авторизации (AuthType) имеет название базовой (Basic) авторизации.
Для того, чтобы защитить конкретный файл, мы можем "обернуть" код выше в директиву <files>, которая указывает на защищенный файл:
<Files "protectedfile.html">
AuthName "Username and password required"
AuthUserFile /path/to/.htpasswd
Require valid-user
AuthType Basic
</Files>
Для таких типов авторизации нам нужен файл .htpasswd, в котором содержится список разделенных двоеточием пар "пользователь:зашифрованный пароль". Т.е. этот файл содержит всех пользователей и их пароли, необходимые для получения доступа к ресурсу.
Важно, что этот файл должен быть сохранен в директории, к которой невозможно получить доступ через URL-адрес.
Запретить доступ для определенных лиц
Еще одно применение файла .htaccess - легко и быстро заблокировать все запросы с определенного IP-адреса или от определенного клиента (обычно браузера). Для того, чтобы заблокировать определенный IP-адрес, просто добавьте следующие директивы в .htaccess:
order allow,deny
deny from 192.168.0.1
allow from all
Директива order сообщает Apache в каком порядке обрабатывать директивы allow/deny (разрешить/запретить).
В примере выше сначала будет выполняться директива allow, потом - deny.
Обратите внимание, что директива allow будет выполняться первой (даже если она идет после deny), и все IP будут разрешены.(.*)$ http://%{REMOTE_ADDR}/$ [r=301,l]
В этом примере любой клиент, у которого строка HTTP_USER_AGENT начинается с "OrangeSpider" (некий зловредный бот) переадресовывается обратно на адрес, с которого он "пришел".
Регулярное выражение соответствует любому одиночному символу (.), повторенному ноль или более раз (*) и перенаправляет по адресу, содержащемуся в переменной окружения (среды) %{REMOTE_ADDR}. Флаг 1 инструктирует Apache о том, что с этим правилом нужно обращаться как с последним, т.е. он не будет обрабатывать другие правила, пока не выполнит переписывание URL.
Реализация кэширования
Кэширование несложно настроить, и оно способствует более быстрой работе сайта. Установив "срок годности" для элементов сайта, которые редко изменяются, где-то в далеком будущем, мы получаем следующее преимущество: мы предотвращаем лишние повторные обращения браузера к серверу, повышая скорость отклика и работы сайта в целом:
ExpiresActive on ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month"
Вы можете добавлять различные директивы для ExpiresByType для контроля кэшируемых элементов. Первая директива ExpiresActive on просто гарантирует нам, что включен специальный модуль, который осуществляет гененрирование загловков со "сроком годности".
Выполнение данных директив зависит от того, установлен ли на Apache соответствующий модуль - mod_expires.
Включение сжатия
Еще один момент, влияющий на скорость работы приложения - сжатие контента. Реализовать его можно подобным образом:
FilterDeclare COMPRESS FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css FilterProvider COMPRESS DEFLATE resp=Content-Type $text/javascript FilterChain COMPRESS FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
Такая схема сжатия работает на версиях Apache от 2.1 и выше, использующих модуль mod_filter.
Здесь используется алгоритм DEFLATE для сжатия контента на основании загловков content-type. В нашем случае мы указали text/html, text/css и $text/javascript.
В примере выше с помощью директивы FilterDeclare мы объявляем фильтр, который хотим использовать (COMPRESS). Затем перечисляем типы контента, которые должен обработать этот фильтр.
Директива FilterChain инструктирует сервер о том, что нужно построить цепочку фильтров на основании директив FilterProvider, которые перечилсены чуть выше.
Директива FilterProtocol позволяет нам указать настройки, которые применяются к цепочке фильтров во время их (фильтров) работы. Мы используем настройки change=yes (контент может быть изменен фильтром, в нашем случае он может быть сжат) и byteranges=no (фильтр должен применяться только к целым файлам).
В более ранних версиях Apache для конфигурирования DEFLATE сжатия используется модуль mod_deflate. В этом случае у нас меньше контроля над фильтрацией контента, но и директивы проще:
SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css text/javascript
В этом случае мы просто устанавливаем алгоритм компрессии, используя директиву SetOutputFilter и следующей строкой указываем типы контента, которые мы желаем сжать с помощью директивы AddOutputFilterByType.
Как правило, Ваш веб-сервер будет использовать один из этих модулей в зависимости от того, какая версия Apache на нем установлена.
Скорее всего, Вы будете знать это заранее, но если Вы создаете общий .htaccess файл, который будет использоваться на ряде сайтов (и Вы не сможете знать об установленных модулях заранее), имеет смысл использовать оба блока кода выше, заключенных в директиву <IfModule module_name>. Это позволит использоваться нужному модулю не приводя к ошибке 500 при попытке настраивать и использовать несуществующий модуль.
Заключение
Мы рассмотрели некоторые из наиболее частых применений файла .htaccess. Как и в случае с любым обзорным материалом, моменты, которые мы затронули, представлены лишь как введения в более узкие темы. Существует еще множество других настроек, которые мы не рассмотрели, поэтому при необходимости Вы можете изучить эти темы более детально.
Источник: http://net.tutsplus.com
Перевод: Дмитрий Науменко
P.S. Обратите внимание на премиум-уроки по различным аспектам сайтостроения, включая программирование на PHP, а также на бесплатный курс по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить этот мощный язык веб-разработки:
Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!
Смотрите также:
Наверх
топ-10 лайфхаков для начинающего вебмастера
Не все знают, что файл htaccess способен улучшить работу сайта: опытные веб-мастера используют его для настройки, оптимизации под мобильный трафик, кастомизации ресурса. В этой статье расскажу, как настроить htaccess, чтобы получить больше трафика, и поделюсь собственным лайфхаками касательно настройки этого файла.
Что такое htaccess
Htaccess (сокращенно от hypertext access (гипертекстовый доступ) – это специальный файл, расположенный в корневом каталоге. Корневой каталог – это главная папка, в которой хранятся все папки или файлы сайта. Обычно корневой каталог называется public_html. Файл htaccess позволяет получить доступ к настройкам apache-сервера. Но про них чуть позже.
Прежде, чем мы будем менять содержимое файла, нужно создать его копию. Рандомное изменение htaccess может привести к потере позиций сайта в поисковых системах. Поэтому лучше иметь копию, если решите все откатить назад.
В некоторых CMS htaccess может быть «спящим» – в этом случае он называется htaccess.txt. В таком виде сервер его не читает, никакие изменения в нем не будут восприниматься.
Зачем нужен htaccess
Главное назначение htaccess – это кастомизированная настройка сервера, которая может понадобиться оптимизатору.
Случаи, когда без настройки htaccess не обойтись:
- Запретить доступ к определенной странице / папке / файлу / директории.
- Сделать редирект, например, с www.texterra.ru на https://texterra.ru.
- Настроить поведение браузера в случае возникновения ошибок. Например, ошибки «404».
- Настроить доступ к конфиг-файлу apache.conf – это случай, когда мы, например, используем виртуальный хостинг. Называться этот файл может по-разному, но чаще всего – .httpd.conf)
- Изменить скорость загрузки.
Кроме этого, без htaccess не обойтись, когда вебмастер работает с виртуальным хостингом.
Где найти
Файл htaccess обычно находится в корневой папке сайта. Если htaccess лежит в корне, то и прописанные в нем команды будут передаваться на сайт целиком. Если же мы создадим или перенесем файл в другой каталог, то он будет регулировать конкретный каталог или подкаталог. Таким образом, никто не запрещает создать сразу несколько файлов htaccess. В последнем случае главным будет тот, который находится непосредственно в каталоге, а находящийся в корне будет считаться второстепенным.
Как редактировать
Редактировать файл htaccess можно несколькими способами. Чаще всего я использую встроенный файловый менеджер, который есть у хостинга. Например, я пользуюсь хостингом Beget, и доступ к файлу htaccess через него можно получить практически в 2 клика.
Открываем «Файловый менеджер» Beget:
Используем поиск по сайту:
Многие современные CMS позволяют редактировать htaccess через панель администратора. Например, в «Битриксе» для этих целей достаточно открыть пункт «Контент» и затем выбрать раздел «Файлы и папки». Теперь просто выбираем htaccess.
Если ваш сайт на WordPress (или любой другой популярной CMS), то изменять htaccess можно, установив любой подходящий плагин. Для этого открываем административную панель вашей CMS и в разделе «Плагины» вбиваем в поиск слово htaccess.
На WordPress выглядит это выглядит так:
У меня есть сайт на WordPress, и, чтобы изменять htaccess, я использую плагин WP Htaccess Editor:
Изменять htaccess можно также с помощью крупных SEO-комбайнов. Например, All in One SEO Pack:
Аналогичная возможность предоставлена и в популярном Yoast SEO:
Какую CMS лучше выбрать для интернет-магазинаКак читать и понимать htaccess
Даже если вы никогда не пишете код, понять принцип синтаксиса htaccess не составит труда. Главные правила:
- Новая команда – с новой строки.
- Если вы хотите добавить комментарий для людей или заметку для себя, то пишите его после символа #.
- Правила вводятся путем создания регулярных выражений.
С первыми двумя пунктами все просто, но с третьим нужно чуть разобраться. Регулярные выражения – это специализированный язык, который используется для описания шаблонов строк. Основан язык регулярных выражений на метасимволах и масках-шаблонах. Углубляться не будем, но отметим, что создание регулярных выражений требует знания переменных и других специальных символов. Их не так много, выучить их не составит труда. Самые часто используемые:
Как делать редиректы через htaccess
Настройка редиректов – самый частый случай редактирования htaccess. Прежде чем делать перенаправление, следует точно убедиться, что оно необходимо. Вообще, поисковики не любят сайты, состоящие целиком из редиректов и нещадно пессимизируют их, урезая позиции. Поэтому не злоупотребляете редиректами.
Правила настройки 301-го редиректа через htaccess:
- Не делать более двух последовательных редиректов. Сразу несколько редиректов значительно увеличивают статическую нагрузку на хостинг и в целом снижают скорость загрузки веб-ресурса.
- Делать перенаправление лучше по принципу «от малого к большему». Например, сперва делаем перенаправление посетителя со страницы А на страницу Б, а уже после этого формируем главный редирект, например, на страницу без слэша*.
*Речь о страницах, которые оканчиваются знаком «/». Например – www.texterra.ru/blog/ и www.texterra.ru/blog
В каких случаях нужно делать 301-ый редирект через редактирование htaccess
Делать перенаправление посетителя через 301-ый особенно актуально в случаях, когда:
- Изменилась вложенность страницы.
- Содержимое страницы или вся страница были удалены.
- Изменился URL-адрес страницы.
Если мы просто удалим страницу, она начнет выдавать ошибку 404, что плохо для позиций сайта в поиске. Думаю, объяснять не надо – пустая страница не интересна для поисковиков. Гораздо разумнее не удалять страницу, а сделать грамотное перенаправление на другую, релевантную удаленной. Чтобы сделать 301-ый редирект, достаточно указать директиву перенаправления. Выглядит она вот так:
Redirect 301 /page1/ https://texterra.ru/page2/
Разберем строку подробнее:
- /page1/ – корневой URL. URL не должен включать протокол шифрования/имя домена.
- https://texterra.ru/page2/ – на этот URL и настраивается редирект.
Удаляем страницы с одинаковым содержанием
Дубли – это страницы, содержимое которых повторяется. Если сайт обрастает неконтролируемыми дублями, то вскоре появляются следующие проблемы:
- Некорректное определение наиболее релевантной страницы краулерами (краулер – поисковый робот, который обходит страницы всех сайтов в интернете, чтобы последние появлялись в результатах поиска).
- Пессимизация сайта со стороны Google и «Яндекса».
- Технические проблемы при составлении отчетов и при выполнении других операций.
- Увеличение времени обхода страниц сайта.
Чтобы каждая страница сайта была доступна исключительно по единому URL, необходимо настроить главное зеркало и редиректы. Последние настраиваются на URL со знаком слэша на конце и на страницы со знаком слэша в начале URL. Если забыли: www.texterra.ru/blog/ и www.texterra.ru/blog.
Для настройки всего вышеперечисленного будем использовать модуль mod_rewrit. Выглядит он так: RewriteEngine On.
Делаем редирект на URL со слешем и на страницы без слеша
Здесь нет общих правил и законов – изучайте статистику по сайту, смотрите, какие именно страницы в индексе превалируют. После анализа статистики будем создавать соответствующие перенаправления. Стоит лишь отметить, что для новых сайтов принято делать редирект именно с поправкой на слэш. Другими словами, вариант www.texterra.ru/blog/ предпочтительнее, чем www.texterra.ru/blog.
Проверить переадресацию просто – достаточно выбрать любую интересующую страницу и добавить в конец URL знак слэша. Если страница загрузилась именно в том виде, в каком вы ее ввели, то это дубль. От всех таких страниц нужно избавляться. Если же страница загрузилась с подменой URL, то делать ничего не нужно, все настроено правильно.
Так я настраиваю 301-ый редирект на слеш:
И так, если нужно настроить 301-ый без слеша:
Как настроить главное зеркало при помощи htaccess
Сперва определяем главный URL, по которому будет открываться ваш сайт. Учтите, что для поисковых роботов Google и «Яндекса» https://texterra.ru, http://texterra.ru и www.texterra.ru – это абсолютно разные сайты. Доменные имена же все различаются! Так что выбрать главное зеркало, в любом случае, придется.
Если хотите переехать на SSL-протокол, то сейчас самое время. Учтите, что после переезда позиции сайта могут просесть. Можно найти бесплатный SSL-сертификат – достаточно будет просто скачать его и установить на сайт. Кроме этого нужно будет добавить соответствующее правило-поправку в наш htaccess. Новая версия сайта также прописывается и в файл robots. При переезде на SSL существует довольно много подводных камней, которые приводят к появлению ошибок, но это уже отдельная тема. Если будет интересно я расскажу о ней в новом материале. Пока же вернемся к главному зеркалу.
Как сделать HTTPS-редирект при помощи htaccess
Чтобы сделать перенаправление на HTTPS-версию сайта, нужно использовать следующий код:
Помочь поисковым роботам правильно определять главное зеркало можно, добавив все версии сайта в Google Search Console и «Яндекс.Вебмастер». Останавливаться на этом не буду, так как существует много инструкций на других сайтах.
В зависимости от выбранного главного зеркала использую одну из 2-х директив:
Как сделать редирект на другой домен при помощи htaccess
Редирект на другой домен может понадобиться, когда ваш сайт переезжает на новый домен. Помимо этого, есть и другие случаи. Еще редиректы на другой домен делают черные оптимизаторы, которые используют так называемые дропнутые домены для переадресации трафика, поисковых ботов, подмены ссылочной массы.
Для создания перенаправления через htaccess впишите в htaccess следующий код:
Естественно, «texterra1» нужно заменить на ваш собственный старый домен, а «texterra2» – на тот домен, на который нужно перенаправить посетителей.
Как отслеживать на сайте вообще все: гайд по Google Tag Manager для продвинутыхЗащита контента и безопасность
Htaccess можно использовать, чтобы запретить доступ к особым разделам / страницам / файлам сайта. Кроме этого, htaccess применяется, чтобы запретить загрузку фотографии, ограничить нагрузку от нежелательных поисковых ботов.
Как ограничить скачивание фотографий с сайта при помощи htaccess
Одно время картинки с моего сайта воровал нехороший блог. Интересное заключалось в том, что картинки скачивались не только вручную, но и в автоматическом режиме при помощи хотлинков (если говорить простым языком, это просто прямые ссылки на картинки). Благодаря htaccess можно запретить загрузку фотографий с сайта, достаточно добавить файл следующий код:
Не забывайте: «texterra.ru» нужно поменять на полный URL вашего сайта. Также создаем картинку в любом графическом редакторе – на ней нужно будет разместить текст, который напомнит злоумышленнику о юридической ответственности за нарушение авторского права. Созданную картинку загружаем на сайт по следующему пути: https://texterra.ru/img/goaway.gif (но это в моем случае, у вас может быть другой, и не забудьте проверить путь в директиве выше).
Закрываем сайт от нежелательных IP
При помощи htaccess можно запретить доступ к сайту как отдельному ip-адресу, так и целым подсетямым. На своих сайтах я также запретил ботов, которые создают нагрузку на хостинг.
Чтобы запретить вредных ботов, я включил в htaccess следующие директивы:
Естественно, ваш список юзер-агентов может быть другим. В него можно внести всех ботов, которые создают высокую нагрузку на хостинг. Посмотреть статистику по запросам вы можете, обратившись в поддержку своего хостинг-провайдера.
Заблокировать можно даже роботов Google и «Яндекса». Например, запретить обход сайта роботу Google можно при помощи такой директивы:
Как разрешить доступ к сайту только определенным IP
Чтобы закрыть сайт для всех IP, кроме определенных, используем эту директиву:
Логика следующая.
Deny from all – ограничить доступ ото всех (имеется в виду от всех IP).
Allow from – разрешить доступ от всех: сюда вписываем IP-адреса, которым разрешен доступ к сайту. Для этого просто заменяем IP1, IP2 на разрешенные IP-адреса.
Как разрешить доступ к сайту только выбранным IP
Способ аналогичный предыдущему, просто используем такую директиву:
Вместо IP1 вписываем IP, которые могут просматривать сайт.
Как запретить доступ к сайту для определенной подсети
Для запрета доступа к сайту какой-либо подсети или подсетей используем такую директиву:
Нужную маску подставляем сразу после deny from. Вычислить IP, с которых отправляется спам, несложно – залогиниваемся в админку CMS и открываем раздел «Комментарии». Например, на WordPress IP отображается сразу после ника комментатора:
Кроме этого идентифицировать спамных товарищей можно, изучив серверные логи.
Как запретить доступ к выбранному файлу через htaccess
Для запрета доступа к файлу добавляем в htaccess следующую директиву:
Заменяем texterra на имя файла, доступ к которому необходимо ограничить. Теперь при открытии такого файла посетитель увидит 403-ю ошибку.
Как ограничить доступ к htaccess-файлу и базе данных сайта
Чтобы запретить доступ к нашему htaccess-файлу, прописываем следующую директиву:
Если ваш сайт работает на WordPress, я рекомендую закрыть доступ и к базам данных. Для этого прописываем такую директиву:
Если вы не хотите, чтобы на ваш сайт переходили с какого-то определенного веб-ресурса, нужно использовать такую директиву:
Естественно, block заменяем на URL нежелательного сайта.
Как запаролить файл / папку на сайте
Во многих случаях требуется ограничить доступ к определенному файлу для большинства лиц, но сохранить его для определенной группы посетителей. В таком случае можно использовать доступ по паролю.
Первым делом создаем текстовой файл в корне и называем его .htpasswd. В этом файле необходимо указать пары логин / пароль. При прописывании пары обязательно соблюдаем такой синтаксис user:password
Когда файл с логинами / паролями сформирован, вносим следующие директивы в htaccess:
Так мы защитили паролем выбранный файл. Если нужно запаролить папку, а не файл, то вписываем в htaccess такую директиву:
Внимание! Строку «/pub/home/.htpasswd» нужно заменить на ваш собственный путь до .htpasswd.
Как ограничить скрипты через htaccess
Для защиты своего сайта от вредных скриптов рекомендую прописать следующие директивы:
С ними сайт будет отдавать 403-ю всем, кто пытается его хакнуть.
Htaccess против DOS-атак
Чтобы бороться с DOS-атаками, достаточно уменьшить максимальный размер запроса. Указывается он в байтах. Например, нам нужно установить максимальный размер запроса в 10 Мбайт. Соответственно, указываем следующую директиву:
Гайд: как привлечь трафик в блог и правильно его монетизироватьВнешний вид сайта и htaccess
Если требуется заменить индексный файл (тот, который открывается по умолчанию при обращении к определенному каталогу), просто вписываем директиву в htaccess:
Соответственно, строку «anotherindex.html» нужно заменить на ваш собственный файл.
Как добавить или убрать расширение файла в конце URL (html или php)
Если хотите, чтобы во всех URL отображалось расширение html, используйте следующую директиву:
Как убрать расширение .html из всех URL
Чтобы удалить убрать окончание URL .html, необходимо добавив эту директиву:
Настраиваем кодировку
Несмотря на то, что мы живем в 2020 году, ошибки с отображением текста все еще встречаются. Они связаны с некорректным определением кодировки сайта браузером. Чтобы предупредить браузер о том, что ваш сайт использует именно Windows-1250, а не UTF-8, например, нужно внести некоторые изменения в htaccess.
Иногда кодировка прописывается в мете (причем для каждой страницы). Если возникают проблемы с отображением сайта, нужно использовать следующую директиву:
Вместо WINDOWS-1251 укажите вашу кодировку.
Чтобы все файлы, которые вы загружаете на свой сайт, имели идентичную кодировку, нужно указать ее при помощи такой директивы:
Две вышеуказанных директивы должны иметь идентичную кодировку.
Как сделать красивую 404-страницу
Наверняка вы не раз попадали на несуществующую страницу сайта, которая сообщает о 404-ой ошибке. Ощущение пустоты и потери – вот как можно описать впечатление от наблюдения такой страницы:)
Чтобы не потерять посетителя и грамотно перенаправить его на другие страницы сайта, можно сделать кастомную 404-ю. Просто создаем новую папку в корне сайта и называем её любым удобным именем. Теперь создаем html-страницу для 404-ой ошибки и копируем её в созданную папку. Осталось отредактировать htaccess, внеся в файл такую директиву
Аналогичным образом можно создать кастомные страницы для 401-ой, 403-й и 500-ой ошибок.
Гайд по AppSheet: создаем мобильную CRM для работы с ExcelУскорение сайта при помощи дополнительных директив htaccess
Ускорить время загрузки сайта можно, используя директивы сжатия. Htaccess позволяет сжимать файлы при помощи mod_gzip, а также – с помощтю модуля mod_deflate. Первый позволяет тонко настраивать маски. Второй практически ничем ему не уступает и используется для задания расширений, которые нуждаются в оптимизации.
При настройке сжатия следует учитывать, что нагрузка на сервер может возрасти после добавления соответствующих директив, но скорость загрузки сайта при этом уменьшается.
Чтобы настроить сжатие текста, картинок, CSS, Java Script и других компонентов страницы при помощи gzip, внесите следующую директиву в htaccess:
Напомню, mod_deflate позволяет указать все типы файлов, которые будут подвергаться сжатию. Добавив вышеуказанные директивы мы задали сжатие html-текста, «обычного» текста, XML, CSS, Java Script.
Ускорение сайта при помощи кэш-копий
Кэширование можно активировать без всяких плагинов, достаточно немного подредактировать htaccess:
Теперь картинки, текст и скрипты при повторном посещении, будут подгружается уже из кэша, а не с самого сайта. Обратите внимание на строку ExpiresDefault «access plus 1 week» – она настраивает время, в течение которого кэш будет храниться на компьютере посетителя. Соответственно, я указал срок жизни в 1 неделю.
Бонусы – комментарии и email администратора
Еще 2 наработки, которые помогут ограничить спамные комментарии и установить электронную почту для сервер-админа.
Анти-спам
Чтобы заблокировать тех, кто слишком часто оставляет комментарии на вашем сайте, добавьте следующий код:
Не забудьте заменить texterra.ru на свой собственный URL.
Электронная почта сервер-администратора
Чтобы установить электронную почту администратора по умолчанию, необходимо вписать такую директиву:
[email protected] нужно изменить на вашу электронную почту.
Чек-лист htaccess
Эти рекомендации помогут не навредить сайту при работе с htaccess-файлом. Обратите на них самое пристальное внимание, чтобы избежать проблем в будущем.
- Делаем бэкап. Прежде, чем изменять содержимое htaccess, обязательно делаем его копию.
- Вносим постепенно. Директивы нужно вносить поэтапно, не следует сразу вписывать все возможные варианты.
- Тестируем. После внесения директивы тестируем ее работоспособность. После этого приступаем к внесению следующей.
- «От малого к большему». В дочерних htaccess-файлах (речь только о том, когда у вас много htaccess) указываем только новые директивы, иначе можно запутаться. Остальные директивы будут наследоваться от родительского каталога, который находится в корне.
- Убираем мусор. Когда тестируете новые директивы, обязательно очищайте данные и кэш браузера.
- Кириллица запрещена без всяких исключений. Кириллические домены указывайте так, как они прописаны в whois.
- Синтаксис! Внимательно проверяйте синтаксис, особенно если появляется 500-ая ошибка.
Резюме
Возможности htaccess помогут сделать сайт более удобным и функциональным для пользователя, но всегда важно соблюдать умеренность. Следует воздержаться от многих директив – большое количество правил может негативно сказаться на функционировании сайта. Кроме того, увеличится нагрузка на хостинг.
Добавляйте директиву, только если она необходима. Если же задачу можно решить другим, более простым способом, то лучше используйте его. И не забывайте про резервное копирование 🙂
Как реализовать SSL/htaccess в простом веб-сайте без cms
Я сам закодировал веб-сайт (html, css, немного jquery/javascript и php, с подключением к базе данных). По сути, это просто простое портфолио с текстом, каруселью из photos/designs/videos и некоторыми pdf файлами. Таким образом, никакие пользователи не участвуют, кроме простого входа в систему для себя, чтобы загрузить дополнительные фотографии или проекты. Эти фотографии, рисунки и видео сохраняются в простой базе данных.
Всякий раз, когда я захожу на свой сайт, например, в браузере safari, safari дает мне знать, что сайт 'not safe', потому что у меня нет сертификата SSL или файла . https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Однако, когда я добавляю это в свою папку public_html, мой сайт просто не работает. Когда я иду к example.com , он правильно перенаправляет на https://example.com, но я получаю это уведомление:
не найдено
Запрошенный URL не был найден на этом сервере.
Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 404 Not Found.
Когда я удаляю файл .htaccess, он снова работает (но небезопасен в соответствии с моим браузером).
Хостинговая компания ответила: «Мы не создатели сайтов, поэтому мы не можем вам помочь», поэтому я не знаю, как это исправить. Отсюда и этот пост.
Как я могу это исправить, не имея cms, от которой можно зависеть?
php html .htaccess security ssl-certificateПоделиться Источник Lisa 26 февраля 2020 в 15:10
1 ответ
- Как реализовать site-wide SSL, оставив index. https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] Все на сайте должно быть защищено, кроме начальной страницы…
- SSL аутентификация на веб-сайте
Мне нужно сделать что-то вроде аутентификации сертификата ssl на веб-сайте. Насколько я понимаю свою задачу, мне нужно получить сертификат пользователя ssl и отправить его на сервер, который решит, может ли пользователь быть аутентифицирован или нет. Как я могу получить SSL пользователя по…
1
Ошибка не в коде, она зависит от конфигурации apache, если у вас есть доступ к серверу ssh, посмотрите этот инструмент : https://certbot.eff.org/ . если вас нет, то хостинг compagny должен решить вашу проблему.
Поделиться Skyro682 26 февраля 2020 в 15:57
Похожие вопросы:
Как реализовать http2 без ssl на сервере Apache 2.4.18
Я сделал веб-сайт с протоколом HTTP/2, который работает на сервере Apache 2.4.18 HTTP. В настоящее время я сделал сайт SSL включен, потому что я где-то читал, что HTTP/2 по умолчанию требует SSL….
Как заставить HTTPS (Cloudflare Flexible SSL)?
Я использую Cloudflare Flexible SSL на веб-сайте, который я сам запрограммировал (без фреймворка или CMS). Все работает, и теперь я хочу использовать HTTPS на всем сайте. Я использую PHP на…
.htaccess no SSL только дома, но SSL везде?
Я бы хотел, чтобы .htaccess не добавлял SSL на домашнюю ссылку http://domain.com но на всех остальных ссылках на сайте https://domain.com/folder/index.html Так что только домашняя страница не будет…
Как реализовать site-wide SSL, оставив index.html в покое с помощью .htaccess?
В настоящее время я использую следующее В начале моего корневого файла .htaccess. Есть ли безопасный способ исключить index.html? Это вообще необходимо? RewriteCond %{HTTPS} !=on RewriteRule ^…
SSL аутентификация на веб-сайте
Мне нужно сделать что-то вроде аутентификации сертификата ssl на веб-сайте. Насколько я понимаю свою задачу, мне нужно получить сертификат пользователя ssl и отправить его на сервер, который решит,…
Принуждение всех пользователей проходить через SSL с помощью файла .htaccess
Я только что установил сертификат SSL на своем сайте, но теперь я сталкиваюсь с проблемой, когда пытаюсь заставить всех пользователей пройти через безопасный SSL (HTTPS) вместо HTTP. Я обнаружил,…
можем ли мы развернуть файл .war на простом веб-сайте cPanel?
Можно ли развернуть веб-приложение java с помощью Hibernate и Spring MVC на простом веб-сайте cPanel — > файловый менеджер, как мы развертываем простое приложение php/mysql? заранее спасибо
Как реализовать канонический тег в pimcore CMS?
Я должен реализовать канонические теги на веб-сайте клиента, который работает с Pimcore CMS. У кого-нибудь есть опыт в этом или он может дать мне какие-то подсказки?
Force SSL и www в URL из Angular 5 приложений с использованием файла .htaccess
У меня есть веб-сайт на базе Angular 5, и мне нужно реализовать Force SSL с www на этом веб-сайте. Так что в принципе мне нужна любая вариация домена, например http://example.com , example.com,…
htaccess переписать 301 правило перенаправления без www
У меня есть клиент, у которого есть правило перезаписи на своем веб-сайте, которое использует 404 и SSL с https: но оно всегда переписывается на ‘www.mywebsite.com’ . Они хотят этого без www. всякий…
Как создать файл .htaccess на сайте html
Как создать файл .htaccess на сайте html — qaruСпросил
Просмотрено 4к раз
Хотите улучшить этот вопрос? Добавьте подробности и проясните проблему, отредактировав этот пост.
Закрыт 4 года назад.
Я работаю над html сайтом. Я хочу создать файл .htaccess, чтобы переписать URL-адреса с помощью файла .htaccess. Но я понятия не имею, как создать файл .htaccess и как использовать его на веб-сайте html.
Если у кого-то есть решение, пожалуйста, помогите мне.
Заранее спасибо
задан 10 мая ’17 в 10: 082017-05-10 10:08
БхартиБхарти111 серебряный знак11 бронзовый знак
Какую операционную систему / программное обеспечение вы используете? В Windows попробуйте вручную создать файл с помощью Блокнота -> Сохранить как -> выберите из раскрывающегося списка «Все файлы» и введите вручную.htacces имя файла.
Создан 10 мая.
анатоланатол79999 серебряных знаков1616 бронзовых знаков
2lang-html
Stack Overflow лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
Как изменить страницу индекса по умолчанию в .htaccess — Центр поддержки хостинга InMotion
Сервер ищет файлы с определенными именами в качестве первой страницы вашего веб-сайта, также известной как страница индекса .Порядок имен индексных файлов по умолчанию, который просматриваются нашими конкретными серверами: index.htm , index.html , index.php и, наконец, default.htm . Вы можете изменить имя индексного файла, который ищет ваша учетная запись, изменив файл .htaccess . Возможно, вы хотите иметь конкретное пользовательское имя для своего индексного файла или, может быть, вы переходите с другого хоста, а страница индекса имеет другое имя. Таким образом, ваши внутренние ссылки не будут нарушены при переименовании индексного файла.
Нет времени прочитать статью о том, как изменить страницу индекса по умолчанию в .htaccess? Посмотрите наше пошаговое видео.
Что такое файл htaccess?
. htaccess Файл — это скрытый текстовый файл в вашей учетной записи хостинга, который может быть очень мощным. Он разработан таким образом, что вы можете изменить его, чтобы изменить поведение вашего веб-сайта, которое обычно требует более высокий доступ за пределами вашей учетной записи. Он действует как связующее звено между вашим доменом и сервером и может выполнять множество функций.
Подробнее о htaccess
Изменение индексного файла по умолчанию с помощью htaccess
- Войдите в свою cPanel.
- Найдите категорию Files и щелкните значок File Manager .
- Щелкните Настройки в правом верхнем углу.
- Выберите корень документа для домена, с которым вы работаете, и убедитесь, что установлен флажок рядом с Показать скрытые файлы .Нажмите кнопку Сохранить .
- Найдите файл .htaccess и щелкните его правой кнопкой мыши. Это вызывает меню. Найдите и щелкните опцию Edit .
- Вам может быть представлено всплывающее окно. Щелкните на кнопке Edit .
- Теперь вы в редакторе htaccess. Вставьте следующий код вверху страницы, чтобы настроить желаемую страницу индекса.В нашем примере ниже мы решили сделать страницу индекса наших папок с именем first.html.
# Альтернативная индексная страница по умолчанию DirectoryIndex first.html
Вы также можете указать несколько файлов в конфигурации. Файл будет читаться слева направо и проверять их наличие в указанном порядке. В этом примере мы добавляем в список index.htm, index.html и index.php. Сначала сервер проверит файл first.html, если он не найдет файл с таким именем, он перейдет к index.htm и так далее.
# Альтернативные индексные страницы по умолчанию DirectoryIndex первым.html index.htm index.html index.php
- Не забудьте нажать кнопку Сохранить изменения в правом верхнем углу, чтобы сохранить новую конфигурацию htaccess.
Ваш файл .htaccess и что он используется для
Ваш файл .htaccess может быть полезным инструментом, когда вам нужно улучшить свой веб-сайт и улучшить качество обслуживания клиентов. Он даже может поддержать ваши усилия по поисковой оптимизации, гарантируя, что ваш сайт будет сканироваться, индексироваться и быстро загружаться.
Давайте рассмотрим, как работают файлы .htaccess, как их использовать, и какие альтернативы вы можете использовать, если вы не готовы редактировать файл напрямую.
Что такое файл .htaccess?
Файл .htaccess — это простой текстовый файл, используемый для настройки определенных аспектов вашего веб-сайта, таких как перенаправления, управление IP-адресами и т. Д. Каждый файл находится в каталоге на вашем сервере и содержит конфигурации для этого конкретного каталога вашего сайта.
Например, редактирование файла .htac / cess в каталоге «/ image» вашего веб-сайта повлияет только на страницы в этом каталоге.
Если вы поместите файл .htaccess в корневой каталог своего веб-сайта, его конфигурации будут применяться ко всем URL-адресам на вашем сайте.
Распространенное использование файлов .htaccess
Разработчики часто используют файлы .htaccess для настройки способов загрузки или отображения вашего веб-сайта. Наиболее распространенные варианты использования включают:
- Перенаправление URL-адресов
- Создание пользовательских страниц 404
- Принудительное использование HTTPS вместо HTTP
- Управление доступом к вашему веб-сайту с IP-адреса
Как использовать файл .htaccess
Во многом похоже на HTML-код который поддерживает ваш веб-сайт, ваш файл .htaccess также должен соответствовать определенным правилам.
Для начала убедитесь, что на вашем веб-сайте есть активный файл .htaccess. В настройках вашего сервера должна быть возможность вручную разрешить файлу .htaccess переопределить текущие конфигурации вашего веб-сайта. Затем, чтобы создать или отредактировать файл .htaccess, вам необходимо:
- Использовать текстовый редактор
- Написать на языке программирования Apache
- Сохранить файл с именем файла: «.htaccess»
- Загрузить на свой сайт через клиент FTP
Однако помните, что ваши настройки будут применяться ко всем страницам в каталоге, в котором находится файл, поэтому не забывайте, где вы размещаете свой.htaccess файл.
Причины, по которым не следует использовать .htaccess
Использование файла .htaccess на вашем веб-сайте — это один из способов настройки вашего сайта для пользователей. Однако вносить любые изменения в файл следует с осторожностью, так как это может повлиять на скорость вашего сайта.
- Скорость: Ваш сервер сканирует каталог страницы, включая файл .htaccess, каждый раз при загрузке страницы.
- Безопасность: Любой, кто имеет доступ к файлу .htaccess вашего веб-сайта, имеет полный контроль над конфигурацией сервера.Любые внесенные изменения вступают в силу мгновенно, что может представлять большой риск для безопасности.
- Доступность: Ошибки в файле .htaccess могут привести к отключению вашего веб-сайта.
Когда использовать альтернативные файлы .htaccess
Если у вас нет опыта в программировании и кодировании, подумайте о том, чтобы нанять профессионала, чтобы он помог, или найдите другие способы настройки серверов вашего веб-сайта.
Если вы хотите использовать файл .htaccess для настройки следующего, попробуйте следующие альтернативы:
1.URL-адреса перенаправления
URL-адреса перенаправления включают указание одного URL-адреса на другой — обычно потому, что старый URL-адрес больше не активен или не актуален. При перенаправлении пользователи и сканеры переходят на новый URL-адрес, когда они переходят на старый URL-адрес.
Как перенаправить URL-адреса с помощью .htaccess
Вы можете перенаправить URL-адреса с помощью .htaccess несколькими способами, в зависимости от того, что вам нужно перенаправить.
Например, если вы перенаправляете свой домен на другой домен, вы добавите следующее в свой.htaccess файл:
Redirect 301 "/ service" "https://newdomain.com/service"
Однако, если вы просто хотите перенаправить один URL-адрес на другой URL-адрес в том же домене, вы будете использовать другой код:
Redirect 301 "/old_url.html" "/new_url.html"
Вот наиболее распространенные перенаправления, используемые в файле .htaccess:
Redirect Redirect | Перенаправление 301 / pagename.php http://www.domain.com/pagename.html |
Перенаправить весь сайт | Перенаправить 301 / http://www.domain.com/ |
Перенаправить весь сайт в подпапку | Redirect 301 / http://www.domain.com/subfolder/ |
Перенаправить подпапку на другой сайт | Redirect 301 / subfolder http: //www.domain .com / |
Перенаправить любой файл с расширением.html на расширение .php | RedirectMatch 301 (. *) \. html $ http: //www.domain.com$1.php |
Перенаправление со старого домена на новый | RewriteEngine на RewriteBase / RewriteRule (. *) http://www.newdomain.com/$1 [R = 301, L] |
Другие способы перенаправления URL-адресов
Сначала проверьте наличие технических проблем с редиректами с помощью инструмента аудита сайта.Аудит сайта может выявить любые проблемы с вашими переадресациями и предложить рекомендации по их устранению.
Чтобы начать работу с инструментом аудита сайта:
- Войдите в свою учетную запись Semrush.
- Выберите Проекты в разделе «Управление», чтобы просмотреть свои проекты.
- Выберите предпочтительный проект, затем выберите Site Audit на панели управления проекта.
4. Настройте параметры аудита. Вы сможете установить объем сканирования, запретить URL-адреса и добавить дополнительную информацию для входа на веб-сайт.
5. Выберите Начать аудит сайта.
Инструмент позволяет узнать, когда ваши результаты доступны для просмотра. Выберите вкладку Issues для поиска страниц, которые возвращают ошибку 4xx или неработающие ссылки:
Затем проверьте, есть ли в вашей CMS возможность перенаправления. Например, WordPress предлагает бесплатные плагины, такие как Redirection, которые позволяют добавлять перенаправления с одного URL-адреса на другой.
Проверьте, как ваша платформа обрабатывает перенаправления в руководствах пользователя, прежде чем пытаться обрабатывать их с помощью вашего.htaccess файл.
2. Пользовательская страница 404
Если и когда на вашем веб-сайте действительно отображается ошибка 404, страница с фирменной символикой 404 может выглядеть более профессионально и улучшать работу пользователей.
Как создать пользовательскую страницу 404 с использованием .htaccess
Вам необходимо сначала создать веб-страницу и загрузить код в файл .htaccess:
ErrorDocument 404 /error/pagenotfound.html
Измените расположение страницу в местоположение вашей страницы 404.
Другие способы создания собственной страницы 404
Большинство платформ CMS предлагают возможность редактировать страницу 404 с помощью темы вашего веб-сайта. Вам может потребоваться некоторый уровень кодирования, чтобы отредактировать страницу без нарушения файла темы.
В WordPress для большинства тем будет доступна страница 404. Найдите файл шаблона ошибки 404 (обычно сохраняется как «404.php») и откройте его в текстовом редакторе. Оттуда вы можете редактировать текст сообщения 404.
3. Принудительно использовать HTTPS вместо HTTP
Использование HTTPS обеспечивает шифрование связи между браузером и вашим веб-сайтом.(. *) $ Https://www.yourdomain.com/$1 [R = 301, L]
Другие способы использования HTTPS вместо HTTP
В зависимости от того, на какой платформе размещен ваш сайт, вы можете принудительно использовать HTTPS с редиректом.
Самый надежный способ сделать это без использования файла .htaccess — воспользоваться услугой веб-хостинга. Веб-хосты, такие как Cloudways и cPanel, предоставляют возможность включить перенаправление HTTPS, если у вашего веб-сайта есть сертификат SSL.
Однако, если вы являетесь пользователем WordPress, вы можете выбрать использование плагина, такого как бесплатный Really Simple SSL.
4. Разрешить или запретить доступ определенным IP-адресам к вашему веб-сайту
Чтобы управлять определенными IP-адресами с помощью вашего файла .htaccess, добавьте это правило в свой файл в каталогах, для которых вам необходимо ограничить доступ:
Требовать предоставления всех разрешений
Не требовать IP 100.0.1.0
Если вам нужно заблокировать более одного IP-адреса, вы можете добавить дополнительные строки, используя «Не требовать:»
Не требовать IP 100.0.2.0
Не требовать IP 109.9.0.1
Вы также можете заблокировать доступ доменов к вашему веб-сайту, указав имя домена, а не IP-адрес:
Требовать, чтобы домен не был заблокирован хостом.com
Другие способы управления IP-адресами
Вы можете управлять доступом к веб-сайтам с помощью платформы веб-хостинга. Большинство веб-хостов предоставляют возможность создавать правила для определенных IP-адресов, которые разрешают и блокируют доступ к вашему веб-сайту.
Основные выводы
- Редактирование файла .htaccess может быть полезным, если вы умеете редактировать и писать код.
- Вы можете использовать файл .htaccess для принудительного использования HTTPS, добавления пользовательских страниц 404 и создания перенаправления URL-адресов.
- Впрочем, даже самые маленькие.Ошибки файла .htaccess могут вызвать внутренние проблемы на сервере и сделать ваш сайт недоступным. Если вам неудобно редактировать файл своего веб-сайта, подумайте о найме профессионала или попробуйте альтернативные варианты.
Найти и исправить ошибки карты сайта
с помощью инструмента аудита сайта
Создать файл .htaccess | Примеры команд и загрузка
Существует множество различных элементов, которые можно выполнить с помощью файла .htaccess. Они могут создавать перенаправления, переписывать URL-адреса и защищать каталоги паролем.Вы даже можете реализовать их для защиты своей пропускной способности и ресурсов веб-сайта.
Что такое файл .htaccess?Файл .htaccess — это способ настройки правил на вашем веб-сервере, на котором запущен веб-сервер Apache. Когда файл загружен в ваш индексный каталог вашего сайта, он будет обнаружен Apache и выполнен.
Имя по умолчанию — .htaccess, и оно должно быть точно таким, чтобы его можно было использовать. Этот файл в основном используется для переписывания структур URL и перенаправлений.
Как создать файл?Создание файла .htaccess в клиентской операционной системе может оказаться сложной задачей. Самый простой способ заставить файл работать с расширением «точка». Стоит создать его в стандартной программе редактирования текста и загрузить на свой сервер.
Для его создания воспользуйтесь стандартным редактором блокнота. Внесите необходимые изменения и сохраните как «Все файлы» .htaccess. Затем загрузите файл в корневой каталог вашего сервера. Проверьте права доступа CHMOD и убедитесь, что они равны 644 (RW-R — R—).
Некоторые серверы веб-хостинга не позволяют использовать файл .htaccess. Дважды уточните у своего провайдера веб-хостинга, если ваш файл не работает.
Инструкции по созданию файла .htaccess
- Откройте ваш текстовый редактор.
- Введите все настраиваемые правила и команды.
- Файл «Сохранить как», выберите «Все типы» в качестве типа сохранения.
- Имя файла: .htacess
- Сохранить файл
- Загрузить в корневой каталог на сервере
Если у вас возникли проблемы с инструкциями по созданию файла .htaccess. Вы можете скачать мой файл exmaple, чтобы начать свой прогресс.
Скачать файл .htaccess
В зависимости от вашей операционной системы, дважды проверьте загрузку, чтобы увидеть, есть ли точка «.» находится перед именем файла. Если нет, просто переименуйте в «.htaccess» при загрузке на сервер
Примеры команд с файлом .htaccessВот несколько наиболее распространенных команд, которые используются с файлом.htaccess файл.
Параметры основного каталога
Часто используемые настройки по умолчанию.
Options -Indexes
Options + FollowSymLinks
DirectoryIndex index.php index.html index.htm
RewriteEngine на
Пользовательские страницы ошибок
Отправить пользователя на указанную страницу индекса при ошибке веб-сайта.
ErrorDocument 400 / badrequest.html
ErrorDocument 401 / authreqd.html
ErrorDocument 403 / banid.html
ErrorDocument 404 / notfound.html
ErrorDocument 500 /notfound.html
Защита паролем каталога
Защита каталога паролем. Поместите имя пользователя и пароль в файл .htpasswd в следующем формате:
admin: пароль
AuthUserFile /var/www/.htpasswd
AuthGroupFile / var / www / html / users
AuthName EnterPassword
AuthType Basic
Требуется администратор пользователя
Блокировать пользователей или IP-адреса
Эти команды предотвратят доступ к вашему сайту с определенных IP-адресов и веб-сайтов.
Разрешить заказ, запретить
Запретить с 123.45.6.7
Запретить с 891.01.1.2
Разрешить со всех
RewriteEngine на
# Options + FollowSymlinks
RewriteCond% {HTTP_REFERER} blockite \ .com [NC]
RewriteRule. * — [F]
Изменить индексный файл по умолчанию
Эта команда даст вам возможность изменить то, к чему будет обращаться ваш индексный файл при доступе.
DirectoryIndex newhomepage.html
Перенаправляет
Перенаправление www.http: // (www \.)? domain.com /.*$ [NC]
RewriteRule \. (gif | jpg | js | css) $ — [F]
Кэширование
Большинство серверов поддерживают кэширование Gzip для сжатия размера вашего сайта.
#GZIP
AddOutputFilterByType DEFLATE текст / обычный текст
AddOutputFilterByType DEFLATE / html
AddOutputFilterByType DEFLATE текст / XML
AddOutputFilterByType DEFLATE текст / CSS
AddOutputFilterByType DEFLATE приложение / XML
AddOutputFilterByType DEFLATE приложение / XHTML + XML
AddOutputFilterByType приложение DEFLATE / Новости + XML
AddOutputFilterByType DEFLATE приложение / javascript
AddOutputFilterByType DEFLATE application / x-javascript
AddOutputFilterByType DEFLATE text / javascript
AddOutputFilterByType DEFLATE text / x-javascript
SetOutputFilter DEFLATE
#Expires Headers
ExpiresActive на
ExpiresByType text / html «доступ плюс 30 секунд»
ExpiresByType text / css «доступ плюс 1 месяц»
ExpiresByType text / xml «доступ плюс 1 месяц»
ExpiresByType text / javascript «доступ плюс 1 месяц «
ExpiresByType application / javascript» доступ плюс 1 месяц «
ExpiresByType image / gif» доступ плюс 3 месяца «
ExpiresByType image / jpeg» доступ плюс 3 месяца «
ExpiresByType image / png» доступ плюс 3 месяца «
ExpiresByType image / x — значок «доступ плюс 1 год»
Есть еще больше элементов, с которыми вы можете справиться.htaccess. Это лишь некоторые из наиболее распространенных функций, которые веб-разработчики используют ежедневно. Было бы неплохо знать некоторые из этих приемов управления своим веб-сайтом.
У вас есть какие-нибудь советы по использованию .htaccess, которыми вы хотели бы поделиться?
Apache HTTP Server Tutorial: файлы .htaccess
Файлы .htaccess позволяют выполнять конфигурацию
изменяется для каждого каталога.
См. Также
Вам следует избегать использования файлов .htaccess полностью, если у вас есть доступ к
Конфигурационный файл главного сервера httpd.Использование файлов .htaccess замедляет работу вашего HTTP-сервера Apache.
Любую директиву, которую вы можете включить в файл .htaccess , лучше установить в блоке Directory , так как она будет иметь тот же эффект с лучшей производительностью. файлов .htaccess (или «файлы распределенной конфигурации»)
предоставляют возможность вносить изменения в конфигурацию для отдельных каталогов. А
файл, содержащий одну или несколько директив конфигурации, помещается в
конкретный каталог документов, и директивы применяются к этому
каталог и все его подкаталоги.
Примечание:
Если вы хотите назвать свой .htaccess файл , то
в противном случае вы можете изменить имя файла с помощью директивы AccessFileName . Например,
если вы предпочитаете называть файл .config , тогда вы
можете поместить в файл конфигурации вашего сервера следующее:
AccessFileName ".config"
Как правило, файлы .htaccess используют тот же синтаксис, что и
основная конфигурация
файлы.То, что вы можете поместить в эти файлы, определяется AllowOverride директива. Этот
директива определяет в категориях, какие директивы будут
считается уважаемым, если они найдены в файле .htaccess . Если
директива разрешена в файле .htaccess ,
документация для этой директивы будет содержать раздел Override,
указание, какое значение должно быть в AllowOverride для этого
директива должна быть разрешена.
Например, если вы посмотрите документацию для AddDefaultCharset директиве, вы обнаружите, что это разрешено в .htaccess файлы. (См. Строку Context в сводке директивы.) Строка Override читает FileInfo . Таким образом, у вас должно быть не менее AllowOverride FileInfo , чтобы эта директива была
соблюдается в файлах .htaccess и файлах.
Если вы не уверены, разрешена ли конкретная директива в .htaccess , посмотрите документацию для этого
и проверьте строку контекста на наличие «.htaccess».
Как правило, следует использовать только .htaccess файлы, когда
у вас нет доступа к основному файлу конфигурации сервера. Там есть,
например, распространенное заблуждение, что аутентификация пользователя должна
всегда выполняется в файлах .htaccess , а в последние годы
еще одно заблуждение, что директивы mod_rewrite должен находиться в файлах .htaccess . Это просто не то
кейс. Вы можете поместить конфигурации аутентификации пользователей на главный сервер
конфигурации, и это, по сути, предпочтительный способ сделать
вещи.Точно так же директивы mod_rewrite работают лучше,
во многом в основной конфигурации сервера.
файлов .htaccess следует использовать в случае, если
контент-провайдерам необходимо внести изменения в конфигурацию сервера на
для каждого каталога, но не имеют корневого доступа в серверной системе.
В случае, если администратор сервера не желает делать
частые изменения конфигурации, может быть желательно разрешить
отдельные пользователи, чтобы внести эти изменения в .htaccess файлов
для них самих. Это особенно верно, например, в случаях, когда
Интернет-провайдеры размещают несколько сайтов пользователей на одной машине и хотят
их пользователи, чтобы иметь возможность изменять свою конфигурацию.
Однако, как правило, следует использовать файлы .htaccess .
по возможности избегать. Любая конфигурация, которую вы бы рассмотрели
помещая файл .htaccess , можно так же эффективно
сделано в разделе на вашем основном сервере
конфигурационный файл.
Есть две основные причины избегать использования .htaccess файлов.
Первое из них — производительность. Когда AllowOverride настроен так, чтобы разрешить использование файлов .htaccess , httpd будет
поищите в каждом каталоге файлов .htaccess . Таким образом,
разрешение файлов .htaccess приводит к снижению производительности,
независимо от того, используете ли вы их на самом деле! Так же .htaccess Файл загружается каждый раз, когда документ
просил.
Также обратите внимание, что httpd должен искать файлы .htaccess во всех каталогах более высокого уровня, чтобы иметь полный набор
директивы, которые он должен применять. (См. Раздел о том, как
директивы.) Таким образом, если файл запрашивается из
каталог / www / htdocs / example , httpd должен искать
следующие файлы:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Итак, на каждый доступ к файлу из этого каталога приходится 4
дополнительные обращения к файловой системе, даже если ни один из этих файлов не
настоящее время.(Обратите внимание, что это будет только в том случае, если .htaccess файлов были включены для /, которые
обычно бывает не так.)
В случае директив RewriteRule в .htaccess контекст эти регулярные выражения должны быть
перекомпилируется при каждом запросе к каталогу, тогда как в основном
контекст конфигурации сервера они компилируются один раз и кэшируются.
К тому же сами правила сложнее, так как нужно
обойти ограничения, связанные с контекстом для каждого каталога
и mod_rewrite .Обратитесь к Руководству по перезаписи для получения дополнительной информации.
подробно по этому поводу.
Второе соображение касается безопасности. Вы разрешаете
пользователи могут изменять конфигурацию сервера, что может привести к изменениям
который у вас нет контроля. Тщательно подумайте, хотите ли вы подарить
вашим пользователям эта привилегия. Также обратите внимание, что давая пользователям меньше
привилегии, чем они нужны, приведут к дополнительной технической поддержке
Запросы. Убедитесь, что вы четко указываете пользователям, какой уровень
привилегии, которые вы им дали.Точно указать, что вы установили AllowOverride и указывая на них
к соответствующей документации, избавите себя от многих затруднений
потом.
Обратите внимание, что это полностью эквивалентно помещению .htaccess файл в каталоге / www / htdocs / example , содержащий
директиву, и поместить ту же директиву в раздел каталога на вашем основном сервере
конфигурация:
.htaccess файл в / www / htdocs / example :
Содержимое файла .htaccess в
/ www / htdocs / example Текст AddType / пример ".exm"
Раздел из вашего
httpd.conf файл <Каталог "/ www / htdocs / example">
AddType текст / пример ".exm"
Однако, поместив эту конфигурацию в конфигурацию вашего сервера файл приведет к меньшему снижению производительности, поскольку конфигурация загружается один раз при запуске httpd, а не каждый раз, когда файл просил.
Использование файлов .htaccess можно полностью отключить
установив параметр AllowOverride директива к нет :
AllowOverride Нет
Директивы конфигурации, найденные в файле .htaccess применяются к каталогу, в котором находится файл .htaccess найден, и во все его подкаталоги. Однако важно
также помнить, что могло быть .htaccess файлов
в каталогах выше. Директивы применяются в том порядке, в котором они
найдены. Следовательно, файл .htaccess в конкретном
каталог может переопределять директивы, найденные в файлах .htaccess находится выше в дереве каталогов. А те, в свою очередь, могли
переопределенные директивы, найденные еще выше или на главном сервере
сам файл конфигурации.
Пример:
В каталоге / www / htdocs / example1 у нас есть .htaccess , содержащий следующее:
Опции + ExecCGI
(Примечание: у вас должны быть действующие « AllowOverride Options »
чтобы разрешить использование директивы « Опции » в .htaccess файлов.)
В каталоге / www / htdocs / example1 / example2 имеем
файл .htaccess , содержащий:
Опции Включает
Из-за этого второго файла .htaccess в каталоге / www / htdocs / example1 / example2 , выполнение CGI не
разрешено, поскольку действует только опций, включая , что
полностью отменяет любые предыдущие настройки, которые могли быть
место.
Слияние .htaccess с основным файлы конфигурации
Как описано в документации по разделам конфигурации, .htaccess Файлы могут замещать разделы для
соответствующий каталог, но будет заменен другими типами
разделов конфигурации из основных файлов конфигурации. Этот
факт может быть использован для принудительного применения определенных конфигураций, даже в
наличие либеральной настройки AllowOverride .Например, чтобы
предотвращать выполнение скрипта, позволяя установить что-нибудь еще в .htaccess вы можете использовать:
<Каталог "/ www / htdocs">
AllowOverride All
<Местоположение "/">
Параметры + Включает NoExec -ExecCGI
Если вы перешли непосредственно к этой части документа, чтобы узнать, как
Чтобы выполнить аутентификацию, важно отметить одну вещь. Существует
распространенное заблуждение, что вы обязаны использовать .htaccess файлов для реализации пароля
аутентификация. Это не тот случай. Ввод директив аутентификации
в раздел в вашем основном файле конфигурации сервера является предпочтительным способом
для реализации этого, а файлы .htaccess следует использовать только если у вас нет доступа к основному файлу конфигурации сервера. См. Выше обсуждение того, когда вы должны и должны
не использовать файлы .htaccess .
Сказав это, если вы все еще думаете, что вам нужно использовать .htaccess , вы можете обнаружить, что такая конфигурация, как
то, что следует ниже, может сработать для вас.
.htaccess содержимое файла:
AuthType Basic AuthName «Требуется пароль» AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Требовать администраторов группы
Обратите внимание, что AllowOverride AuthConfig должен действовать.
чтобы эти директивы имели какой-либо эффект.
См. Руководство по аутентификации для более полное обсуждение аутентификации и авторизации.
Еще одним распространенным использованием файлов .htaccess является включение
Включения на стороне сервера для определенного каталога. Это можно сделать с помощью
следующие директивы конфигурации, помещенные в .htaccess файл в желаемом каталоге:
Опции + Включает AddType text / html shtml Обработанный сервером shtmlAddHandler
Обратите внимание, что Параметры AllowOverride и AllowOverride
FileInfo должны действовать, чтобы эти директивы имели какие-либо
эффект.(. +) \. jpg «» $ 1.png «
В файле .htaccess в каталоге документов ведущая
косая черта удаляется из значения, предоставленного в RewriteRule , а в изображений Подкаталог , / images / удален из
Это. Таким образом, ваше регулярное выражение должно опускать эту часть как
хорошо.
Обратитесь к документации mod_rewrite для
дополнительные сведения об использовании mod_rewrite .
Наконец, вы можете использовать .htaccess , чтобы разрешить
выполнение программ CGI в определенном каталоге. Это может быть
реализован в следующей конфигурации:
Опции + ExecCGI AddHandler cgi-скрипт cgi pl
В качестве альтернативы, если вы хотите, чтобы все файлы в данном каталоге были считаются программами CGI, это можно сделать с помощью следующих конфигурация:
Опции + ExecCGI SetHandler cgi-скрипт
Обратите внимание, что Параметры AllowOverride и AllowOverride
FileInfo должны действовать, чтобы эти директивы имели какие-либо
эффект.
Пожалуйста, см. Учебник CGI для более подробной информации. полное обсуждение программирования и настройки CGI.
Когда вы помещаете директивы конфигурации в файл .htaccess файла, и вы не получите желаемого эффекта, существует ряд
вещи, которые могут пойти не так.
Чаще всего проблема в том, что AllowOverride не
установите так, чтобы ваши директивы конфигурации соблюдались. Делать
убедитесь, что у вас нет действующего AllowOverride None для рассматриваемой области файла.Хорошая проверка для этого — положить мусор
в вашем файле .htaccess и перезагрузите страницу. Если ошибка сервера
не сгенерирован, то у вас почти наверняка есть AllowOverride
Нет в силе.
Если, с другой стороны, вы получаете ошибки сервера при попытке
получить доступ к документам, проверить журнал ошибок httpd. Скорее всего, это скажет вам
что директива, используемая в вашем файле .htaccess , не
разрешенный.
[Пт 17 сен, 18:43:16 2010] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex здесь не разрешен
Это будет означать, что вы использовали директиву, которая
никогда не разрешается в файлах .htaccess , или что вы просто
не имеет AllowOverride , установленного на
уровень, достаточный для директивы, которую вы использовали. Проконсультируйтесь с
документация для этой конкретной директивы, чтобы определить, какая из них
дело.
В качестве альтернативы он может сообщить вам, что у вас есть синтаксическая ошибка в вашем использование самой директивы.
[Сб, 09 августа, 16:22:34 2008] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: RewriteCond: неверные разделители флагов
В этом случае сообщение об ошибке должно относиться к конкретная синтаксическая ошибка, которую вы допустили.
Учебное пособие поhtaccess — Bluehost
Сводка
В этом руководстве вы узнаете о файле .htaccess и его возможностях для улучшения вашего веб-сайта. Bluehost поддерживает.htaccess, однако, как клиент, вы несете ответственность за то, что находится в этом файле, и за то, как он изменяет ваш сайт.Создание файла .htaccess
Вы можете создать файл .htaccess на локальном компьютере или на сервере.На вашем компьютере:
Windows: Используя Блокнот, сохраните файл как.htaccess Mac OS X: Используя TextEdit, сохраните файл как «.htaccess».
Примечание. Если вы сохраните файл как .htaccess, он будет скрыт, и вы не сможете увидеть его в Finder.
Используя предпочитаемый вами FTP-клиент, загрузите файл на сервер. Файл .htaccess должен находиться в папке, где расположен ваш сайт, обычно в папке public_html.
На сервере
- Войдите в свою учетную запись cPanel
- Щелкните значок File Manager , расположенный в разделе Files .
- Во всплывающем окне диспетчера файлов выберите «Выбрать скрытые файлы (точечные файлы)».
Примечание. Если вы не видите это всплывающее окно, вам нужно будет щелкнуть «сбросить все настройки интерфейса» ссылку в нижней части страницы cPanel. - Во всплывающем окне диспетчера файлов выберите папку, которую вы хотите открыть, чаще всего это «Web Root (public_html / www)»
- Нажмите кнопку Перейти .
Примечание. Если вы уже находитесь в диспетчере файлов, вы можете добавить & showhidden = 1 в конец URL-адреса. - Щелкните значок New File , чтобы создать новый файл и назовите его .htaccess
Альтернативные индексные файлы
Возможно, вы не всегда захотите использовать index.htm или index.html в качестве индексного файла для каталога, например, если вы используете файлы PHP на своем сайте, вам может потребоваться index.php в качестве индексного файла для каталога. Однако вы не ограничены «индексными» файлами. Используя .htaccess, вы можете установить foofoo.blah в качестве индексного файла, если хотите!
Альтернативные индексные файлы вводятся в список. Сервер будет работать слева направо, проверяя, существует ли каждый файл, если ни один из них не существует, он отобразит список каталогов (если, конечно, вы не отключили это).
DirectoryIndex индекс.php index.php3 messagebrd.pl index.html index.htm Пользовательские страницы ошибок
Вы можете настроить свои собственные личные страницы ошибок (например, когда файл не найден) вместо использования страниц ошибок Bluehost или отсутствия страницы ошибок. Это сделает ваш сайт более профессиональным.
Вы можете использовать настраиваемые страницы ошибок для любой ошибки, если вам известен ее номер (например, 404 для страницы, не найденной), добавив следующее в ваш.htaccess файл:
Ошибка Номер ошибки документа /file.html Например, если бы у меня был файл notfound.html в корневом каталоге моего сайта и я хотел бы использовать его для ошибки 404, я бы использовал:
ErrorDocument 404 /notfound.html Если страница с ошибкой находится не в корневом каталоге вашего сайта, вы можете ввести путь к файлу: ErrorDocument 500 /errorpages/500.html Вот некоторые из наиболее распространенных ошибок:
401 - Требуется авторизация
ошибка 400, неверный запрос
403 - Запрещено
внутренняя ошибка сервера 500
404 - Неправильная страница
Остановить отображение индекса каталога
Иногда по той или иной причине в вашем каталоге нет индексного файла.Это, конечно, будет означать, что если кто-то наберет имя каталога в своем браузере, будет показан полный список всех файлов в этом каталоге. Это может быть угрозой безопасности вашего сайта.
Чтобы предотвратить это (без создания большого количества новых «индексных» файлов, вы можете ввести команду в свой файл .htaccess, чтобы остановить отображение списка каталогов:
# отключить просмотр каталогов
Параметры ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes
# включить просмотр каталогов
Опции Все + Индексы Запретить / разрешить определенные IP-адреса
Чтобы разрешить доступ к вашему сайту только людям с определенными IP-адресами (например, разрешить людям, использующим определенную сеть, попасть в определенный каталог), или вы можете захотеть заблокировать определенные IP-адреса (например, не допуская нарушителей к вашему сообщению. доски).Это будет работать, только если вы знаете IP-адреса, которые хотите заблокировать.
Имейте в виду, что большинство интернет-провайдеров используют динамические IP-адреса, поэтому это не всегда лучший способ ограничить / предоставить доступ.
Блокировка IP-адреса
#Deny List
заказ разрешить, запретить
deny from 123.123.123.123 # указать конкретный адрес
Отказаться от 123.123.123.123 / 30 # указать диапазон подсети
deny from 123.123. * # указать подстановочный знак IP-адреса
разрешить со всех Разрешить только определенные IP-адреса
# Список разрешенных
заказ отклонить, разрешить
allow from 123.123.123.123 # указать конкретный адрес
разрешить от 123.123.123.123/30 # указать диапазон подсети
разрешить от 123.123. * # указать подстановочный знак IP-адреса
отрицаю от всех
Примечание. Это по-прежнему позволит сценариям использовать файлы в каталоге.Перенаправление
В cPanel есть инструмент, который может создавать перенаправления для вас, см. Как создать перенаправление
Перенаправить из определенного файла в новый файл
Пример:
Redirect / redirect_from.html http://www.newsite.com/folder/redirect_to.html В приведенном выше примере файл с именем redirect_example.html в корневом каталоге перенаправляется на URL-адрес http://www.newsite.com/folder/redirect_example.html.
Если старый файл находился в подкаталоге, вы можете использовать:
/subdirectory/redirect_from.html
WildCard Redirect / Перенаправление из одной папки в новую папку
Redirect / redirect_from http: // www.newsite.com/redirect_to Теперь любой запрос к вашему сайту ниже / olddirectory будет перенаправлен на новый сайт с добавлением дополнительной информации в URL-адресе, например, если кто-то набрал:
http://www.example.com/redirect_from/images/image.gif
Они будут перенаправлены на:
http://www.newsite.com/redirect_to/images/image.gif
Перенаправление (перезапись URL) с помощью Joomla
Чтобы включить перезапись URL-адресов в Joomla, вам необходимо скопировать и вставить следующий код в ваш файл .htaccess.
# По соображениям безопасности, Option followsymlinks не может быть изменен.
#Options + FollowSymLinks
Параметры + SymLinksIfOwnerMatch
Защита паролем
Одно из многих применений.htaccess может надежно защищать паролем каталоги на веб-сайтах.
Примечание. Если вы хотите использовать инструмент cPanel для защиты папок паролем, ознакомьтесь с нашей статьей: Защита паролем папки на вашем веб-сайте.
Файл .htaccess
Добавление защиты паролем к каталогу с помощью .htaccess занимает два этапа. Первая часть — добавить соответствующие строки в ваш.htaccess в каталоге, который вы хотите защитить. Все, что находится ниже этого каталога, будет защищено паролем:
AuthName "Название раздела"
AuthType Basic
AuthUserFile /home/username/.htpasswds
Требовать действующего пользователя Есть несколько частей, которые вам нужно будет изменить для своего сайта. Вы должны заменить «Название раздела» названием части сайта, которую вы защищаете. E.грамм. «Личный кабинет».
/Home/username/.htpasswds следует изменить, чтобы отразить полный путь сервера к файлу .htpasswds (подробнее об этом позже). Если вы не знаете полный путь к вашему веб-пространству, проверьте свою cPanel Bluehost. Посмотрите на левый столбец статистики на cPanel.
Файл .htpasswds
Защита каталога паролем требует немного больше усилий, чем любой другой.htaccess, потому что вы также должны создать файл, содержащий имена пользователей и пароли, которым разрешен доступ к сайту. Их следует поместить в файл, который (по умолчанию) должен называться .htpasswd. Его можно разместить в любом месте вашего веб-сайта (так как пароли зашифрованы), но рекомендуется хранить его за пределами корневого веб-сайта (в вашем домашнем каталоге), чтобы к нему невозможно было получить доступ из Интернета.
Ввод имен пользователей и паролей
После того, как вы создали свой.htpasswd (вы можете сделать это в стандартном текстовом редакторе) вы должны ввести логины и пароли для доступа к сайту. Их следует вводить следующим образом:
логин: пароль Где пароль — это зашифрованный формат пароля. На сайте KxS есть хорошая служба имени пользователя и пароля, которая позволит вам ввести имя пользователя и пароль и выведет их в правильном формате.
Для нескольких пользователей просто добавьте дополнительные строки в файл .htpasswd в том же формате, что и первый.
Доступ к сайту
Когда вы пытаетесь получить доступ к сайту, который был защищен с помощью .htaccess, в вашем браузере появится стандартное диалоговое окно имени пользователя и пароля. В качестве альтернативы вы можете отправить имя пользователя и пароль (в незашифрованном виде) в URL-адресе следующим образом:
http: // имя пользователя: пароль @ www.website.com/directory/
Рекомендуемое содержимое справки
Office 365: советы и рекомендации
Как я могу узнать об инструментах повышения производительности, включенных в мой план Office 365?
Как редактировать ан.Файл htaccess — отредактируйте файл htaccess в файловом менеджере cPanel.
Объясняет, как редактировать .htaccess
9 советов по работе в WordPress
Универсальный и надежный WordPress является фаворитом среди приложений и систем управления контентом. В этой статье представлены девять советов по работе в WordPress.
Соответствующее содержимое справки
Как перенаправить перезапись с помощью файла htaccess — с www на не-www
Как выполнить перенаправление / перезапись URL с помощью файла .htaccess?
Как принудительно установить SSL на всех страницах в.Файл .htaccess
Как принудительно использовать https на всем веб-сайте.
Установка прав доступа к файлам и пользователям
Краткое руководство по установке разрешений для файлов и пользователей в cPanel.
Как исправить ExecCGI в.htaccess
Как запускать сценарии CGI для дополнительных доменов.
Как найти свою базу данных WordPress
В этой статье объясняется, как найти базу данных, используемую сайтом WordPress.
Как изменить файл Hosts
Файл hosts — это простой текстовый файл, который позволяет вам устанавливать IP-адреса для домена на вашем компьютере.Это может перекрыть авторитетный DNS.
Как разместить основной домен из подпапки htaccess
Как заставить подкаталог (или подпапку) действовать как public_html для вашего основного домена?
Защита от хотлинков с помощью mod_rewrite
Предотвращение кражи полосы пропускания с помощью механизма перезаписи модов и.htaccess
Как использовать правила WordPress .htaccess для HTTP
.htaccess — важный файл ядра WordPress, который часто используется для добавления, изменения и переопределения конфигураций на уровне сервера, параметров безопасности и производительности.
Во многих случаях вы можете решить многие операционные проблемы и проблемы на уровне сервера, просто обновив / изменив правила в WordPress.htaccess файл. Однако многие владельцы веб-сайтов не осознают весь потенциал .htaccess для WordPress и, таким образом, упускают возможность оптимизировать свой сервер (и веб-сайт) в полной мере.
Чтобы помочь всем таким WordPressers, я выделю несколько интересных вещей, которые вы могли бы сделать, используя файл .htaccess в WordPress.
Примечание: Правила и конфигурации, упомянутые ниже, работают с Apache 2.4
Правила WordPress .htaccess Что такое файл .htaccess?А.Файл .htaccess — это диспетчерская для вашего веб-сайта, содержащая основные правила, которые регулируют всю связь с вашим сервером веб-хостинга WordPress. В частности, вы можете использовать файл .htaccess в WordPress для таких задач, как контроль доступа к страницам веб-сайта, повышение безопасности и производительности. Его можно поместить в любую папку веб-сайта, чтобы изменить поведение этой папки.
Меры предосторожностиОдна неуместная точка (.) Потенциально может вывести из строя ваш сайт.Таким образом, прежде чем вносить какие-либо изменения в файл .htaccess, сначала создайте резервную копию файла в удаленном месте. Если что-то пойдет не так или вам понадобится помощь, обратитесь к своему провайдеру веб-хостинга.
Файл .htaccess WordPress по умолчанию Файл.htaccess поставляется с каждой установкой WordPress и обычно находится в корневом каталоге. Учитывая важность файла, он обычно скрыт (у него нет расширения файла) и не отображается в списках файлов и папок, главным образом потому, что файловый менеджер скрывает его из соображений безопасности.
В редких случаях возможно, что в корневой папке нет файла .htaccess. В этом случае вы можете создать файл .htaccess в WordPress с помощью Блокнота (или любого текстового редактора по вашему выбору) и сохранить его под именем « .htaccess ». Установите « Сохранить как тип » на Все файлы и загрузите его в корневой каталог вашей установки WordPress.
ВАЖНО: Убедитесь, что имя файла — НЕ «htaccess» — это htaccess с точкой (.index \ .php $ — [L]
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /index.php [L # КОНЕЦ WordPress Файл .htaccess WordPress по умолчанию Другой способ создания файла .htaccess для WordPress — это посетить Панель управления WordPress -> Настройки -> Постоянные ссылки и нажать « Сохранить изменения ». Это сгенерирует файл .htaccess по умолчанию для WordPress внутри корневого каталога. Файл .htaccess WordPress по умолчанию обрабатывает только постоянные ссылки вашего веб-сайта. Однако это можно изменить, и можно добавить дополнительные правила для управления тем, как веб-сервер Apache обрабатывает запросы, связанные с операциями. Чтобы отредактировать файл .htaccess в WordPress, перейдите в корневой каталог. Это можно сделать с помощью файлового менеджера, предоставленного вашим хостинг-провайдером WordPress, или через FTP-клиент, например FileZilla. Войдите в свою учетную запись веб-хостинга, перейдите в папку « public_html » и найдите файл.htaccess в установке WordPress. Щелкните правой кнопкой мыши и выберите опцию « View / Edit », чтобы открыть ее в предпочтительном текстовом редакторе. Внесите необходимые изменения и сохраните файл. Другой способ редактирования файла .htaccess WordPress — это создание копии в локальной системе. Как только вы закончите, замените живую версию с помощью FTP или файлового менеджера. Как обсуждалось выше, расширение.Файл .htaccess в WordPress можно использовать для управления переадресацией веб-сайтов. Вот несколько часто используемых правил, которые помогут вам настроить перенаправления на ваших сайтах WordPress и управлять ими. Переадресация 301 сообщает поисковым системам, что URL-адрес был навсегда перемещен в другое место. Это не ограничивается только URL-адресами, и вы можете перенаправить папку, страницу или даже целый веб-сайт. Следующий фрагмент перенаправит oldpage.html на новую страницу.HTML: В отличие от 301, 302 Redirect сообщает поисковым системам, что это перенаправление является временным. Это отличный способ замедлить (или даже предотвратить) перемешивание результатов поисковой выдачи. Добавьте следующую строку в файл .htaccess: Следующее./ имя-подкаталога /
RewriteRule (. *) / Subdir / $ 1 Если у вас есть два домена, обслуживающих один и тот же веб-сайт, указанное ниже правило .htaccess перенаправит один домен на другой. Файл htaccess также можно использовать для защиты каталогов и файлов WordPress на сервере. Вот несколько очень важных правил, которые пользователи могут использовать для защиты веб-сайтов WordPress.. * \. ([Hh] [Tt] [Aa]) «>
заказ разрешить, запретить
отрицаю от всех
удовлетворить все Представьте (ужасный) сценарий, когда кто-то получает доступ к вашей панели администратора WordPress? Такая атака может нанести вред вашему сайту. Чтобы предотвратить это, вы должны ограничить доступ к административной панели WordPress только для определенных IP-адресов. Для этого создайте еще один файл .htaccess и вставьте в него следующий фрагмент.Затем загрузите его в папку «www.yourwebsite.com/wp-admin/». Теперь, если кто-либо не входит в список одобренных IP-адресов, он не сможет войти на ваш сайт. Вместо этого будет отображаться следующая ошибка: Примечание: Не забудьте заменить «xx.xx.xx.xx» на свой разрешенный IP-адрес.. * (error_log | wp-config \ .php | php.ini | \. [hH] [tT] [aApP]. *) $ «>
Заказать отказать, разрешить
Запретить всем Защитить wp-config.php В WordPress wp-config.php — это файл, в котором хранятся хостинг, база данных и другие важные учетные данные. Само собой разумеется, что этот файл должен быть защищен от любого несанкционированного доступа. Для этого просто скопируйте и вставьте следующие строки в файл .htaccess. wp-content — это папка, которая содержит все важные файлы ваших тем, плагинов, мультимедиа и кешированных файлов. Вот почему этот каталог является основной целью хакеров и спамеров. Чтобы защитить эту папку от несанкционированного доступа, создайте отдельный файл .htaccess в папке wp-content . Затем скопируйте и вставьте в файл следующий фрагмент: Согласно вышеуказанному правилу, пользователи смогут загружать файлы только с разрешенными расширениями (XML, CSS, JPG, JPEG, PNG, GIF и JavaScript). Все остальные типы файлов будут отклонены. Некоторые области установки WordPress никогда не должны быть доступны обычным пользователям. Всегда рекомендуется блокировать любой доступ к этим файлам. Вы можете настроить ограничения доступа, добавив фрагмент в файл.wp-includes / theme-compat / — [F, L] Ограничение выполнения кода PHP для всех или выбранных каталогов веб-сайта WordPress является важной практикой безопасности веб-сайта WordPress. Создайте файл htaccess внутри папки, в которой вы не хотите запускать сценарии PHP, и добавьте в него приведенный ниже фрагмент. Некоторые папки WordPress, такие как / wp-includes / и / wp-content / uploads /, по умолчанию доступны для записи.Этот тип разрешения позволяет пользователям загружать мультимедиа или файлы различных типов. Всегда рекомендуется отключать выполнение PHP в этих каталогах. Ограничение доступа к wp-admin является важным требованием, особенно когда несколько членов команды участвуют в управлении и обновлениях веб-сайта. На практике это означает, что пользователи не могут получить доступ к конфиденциальным файлам, таким как плагины, темы и папки с ресурсами. ./ wp-content / themes / каталог / в / exclude /
RewriteRule wp-content / themes / (. * \. Php) $ — [R = 404, L] Внедрение сценария — это широко известный метод, при котором злоумышленник «внедряет» вредоносный фрагмент кода в код веб-сайта для извлечения данных или захвата веб-сайта. Добавление следующего фрагмента в файл .htaccess WordPress может защитить ваш сайт от таких атак. Если кто-то злоупотребляет вашим сайтом, постоянно рассылает спам или предпринимает попытки взлома, его IP-адрес виден в панели администратора WordPress. Чтобы заблокировать IP-адрес, просто используйте файл .htaccess для управления доступом к вашему сайту. Просто скопируйте и вставьте следующий фрагмент в файл .htaccess вашего WordPress, и эта конкретная проблема исчезнет. Не забудьте заменить образец IP на IP спамера. После размещения фрагмента спамер увидит на вашем сайте следующее сообщение об ошибке: Иногда требуется ограничить доступ к определенным файлам. Используйте следующее правило .htaccess, чтобы заблокировать доступ к отдельным файлам. Несанкционированный доступ к файлам и папкам веб-сайта представляет собой серьезную угрозу безопасности, которая потенциально может вывести из строя весь сайт. Добавив следующий фрагмент в файл .htaccess WordPress, можно контролировать / отключать доступ к каталогам веб-сайтов для всех пользователей. Файл .htaccess в WordPress также можно использовать для повышения производительности вашего веб-сайта. Просто скопируйте и вставьте соответствующие фрагменты в файл .htaccess. Попробуйте 3-дневную бесплатную пробную версию для проверки функций безопасности Кэш браузера - это временное хранилище в вашей системе для файлов, загружаемых вашим веб-браузером для правильного отображения веб-сайтов.Эти файлы могут включать HTML, CSS, JavaScript, а также изображения и другой мультимедийный контент. В файле .htaccess WordPress вы можете установить правила, определяющие, как долго определенные файлы должны храниться в кэше. Следующие ограничения по сроку действия установлены в зависимости от популярного использования. Чтобы включить кеширование браузера, добавьте следующий фрагмент в файл htaccess для WordPress. Подробнее: Узнайте, как использовать кеширование браузера в WordPress для оптимизации времени загрузки страницы Gzip - чрезвычайно мощный алгоритм сжатия, который находит похожие строки в текстовом файле и временно заменяет их, чтобы уменьшить общий размер файла.В результате Gzip часто используется в качестве важного инструмента оптимизации скорости загрузки страниц веб-сайта. Gzip часто используется на уровне сервера, и многие хостинг-провайдеры, такие как Cloudways, включают его по умолчанию. Однако, если по какой-либо причине htaccess не работает, попробуйте добавить следующий фрагмент в файл WordPress .htaccess или обратитесь к своему провайдеру веб-хостинга. Hotlinking изображения может значительно повлиять на использование полосы пропускания, потому что каждый раз, когда внешний ресурс запрашивает изображение, пропускная способность вашего сервера используется для доставки изображения. Чтобы снизить потребление полосы пропускания из-за хотлинкинга изображений, вы можете добавить следующий фрагмент кода в файл.http (s)?: // (www \.)? yourdomain.com [NC]
RewriteRule \. (Jpg | jpeg | png | gif) $ - [NC, F, L] Файл .htaccess по умолчанию для WordPress Multisite немного отличается от стандартного файла .htaccess WordPress. Если ваша многосайтовая сеть WordPress основана на подпапках, файл . index \.(. * \. php) $ 1 [L]
RewriteRule. index.php [L] Когда дело доходит до конфигурации сервера, файл WordPress .htaccess является одним из самых важных файлов на вашем сервере. Он часто используется для настройки вашего веб-сервера и защиты различных областей вашего веб-сайта. Если вы думаете, что я упустил из виду важный вариант использования .htaccess, оставьте комментарий ниже, и я обновлю этот список. .Файл .htaccess в WordPress — это файл конфигурации сервера, который можно использовать для настройки перенаправлений, безопасности и оптимизации производительности. Файл .htaccess WordPress можно редактировать с помощью файлового менеджера веб-хостинга или любого текстового редактора. Используйте любой FTP-клиент, например FileZilla, и получите доступ к корневому каталогу. Откройте файл .htaccess в текстовом редакторе, чтобы изменить и обновить. Да, по умолчанию в WordPress есть хотя бы один.htaccess файл. Если его нет в корневом каталоге, перейдите на панель инструментов WordPress -> Настройки -> Постоянные ссылки, и нажмите « Сохранить изменения », чтобы создать новый файл .htaccess. Отзывы клиентов на Арда Бурак [Владелец агентства] Мустаасам — менеджер сообщества WordPress в Cloudways — управляемой платформе хостинга WordPress, где он активно работает и любит делиться своими знаниями с сообществом WordPress. Redirect 301 /oldpage.html http://www.yourwebsite.com/newpage.html
302 (временное) перенаправление Redirect 302 /oldpage.html http://www.yourwebsite.com/newpage.html
Заставить URL на www Редирект 301 / http://www.mynewwebsite.com/
Советы по безопасности WordPress htaccess # Ограничить логины и админку по IP
<Ограничить GET POST PUT>
заказ отклонить, разрешить
отрицаю от всех
разрешить от xx.xx.xx.xx
<файлы wp-config.php>
заказ разрешить, запретить
отрицаю от всех
Защитить / wp-content / Заказать отклонить, разрешить
Запретить всем
<Файлы ~ ".(xml | css | jpe? g | png | gif | js) $ ">
Разрешить от всех
<Файлы * .php>
отрицаю от всех
Опции + FollowSymLinks
RewriteEngine On
RewriteCond% {QUERY_STRING} (<|% 3C).(. *) $ index.php [F, L] IP-адрес блока <Ограничить GET POST>
заказ разрешить, запретить
Отказаться от 123.456,78,9
разрешить от всех
<файлы your-file-name.txt>
заказ разрешить, запретить
отрицаю от всех
Отключить просмотр каталогов # отключить просмотр каталогов
Опции Все -Индексы
WordPress Правила производительности htaccess Cloudways предлагает несколько функций безопасности для защиты вашего сервера и приложений
Управление / ограничение изображения Hotlinking В. Что такое файл .htaccess в WordPress?
В. Как я могу отредактировать файл .htaccess в WordPress?
В. Создает ли WordPress файл htaccess?
«Красиво оптимизированный хостинг для WordPress и Magento»
Мустасам Салим

