Полное описание файла htacces

Файл .htaccess — это конфигурационный файл для веб-сервера Apache, который управляет настройками доступа, перенаправлений, защиты и других параметров без изменения основного файла конфигурации Apache (httpd.conf).

Он используется в отдельных директориях и распространяет настройки на все вложенные папки.


Основные директивы .htaccess

1. Управление доступом

Ограничение доступа по IP:

Order Deny,Allow
Deny from all
Allow from 192.168.1.100

🔹 Deny from all — запретить всем.
🔹 Allow from 192.168.1.100 — разрешить только IP 192.168.1.100.

Ограничение доступа по паролю (используется с .htpasswd):

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/.htpasswd
Require valid-user

🔹 AuthType Basic — базовая аутентификация.
🔹 AuthUserFile — путь к файлу с логинами и паролями.
🔹 Require valid-user — разрешить доступ только авторизованным пользователям.


2. Перенаправления (Redirects & Rewrite)

Простое перенаправление (301 Redirect)

Redirect 301 /old-page.html https://example.com/new-page.html

🔹 Перенаправляет old-page.html на new-page.html с кодом 301 (постоянное перенаправление).

Перезапись URL (Rewrite Rules)

RewriteEngine On
RewriteRule ^oldpage$ /newpage [R=301,L]

🔹 RewriteEngine On — включает модуль перезаписи.
🔹 RewriteRule — правило переписывания URL:
^oldpage$ — если URL содержит oldpage,
/newpage — перенаправить на /newpage,
[R=301,L] — выполнить редирект 301 и остановить правила (L = Last).

Пример ЧПУ (Человеко-Понятные URL)

RewriteRule ^product/([0-9]+)/?product.php?id=1 [L,QSA]

🔹 URL /product/123/ превращается в product.php?id=123.
🔹 [QSA] — сохраняет параметры запроса.


3. Защита файлов и папок

Запрет на просмотр содержимого папки

Options -Indexes

🔹 Отключает автоиндексацию файлов в директории (защита от просмотра).

Запрет доступа к определённым файлам

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

🔹 Блокирует доступ к .htaccess, .htpasswd, .ini, .log, .sh и другим файлам.


4. Кеширование и сжатие (оптимизация скорости)

Сжатие Gzip

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</IfModule>

🔹 Включает сжатие Gzip для HTML, CSS, JS и XML.

Кеширование файлов

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
</IfModule>

🔹 Устанавливает кеш для изображений (1 месяц), CSS и JS (1 неделя).


5. Установка главной страницы

DirectoryIndex index.php index.html home.html

🔹 Если есть index.php, загрузится он, иначе index.html, иначе home.html.


6. Изменение PHP-настроек

Если у вас есть доступ к файлу .htaccess, но нет доступа к php.ini, можно изменять PHP-настройки:

php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value memory_limit 256M
php_value max_execution_time 60

🔹 Ограничивает загрузку файлов 10 МБ.
🔹 Устанавливает лимит памяти 256 МБ.
🔹 Ограничивает время выполнения скриптов 60 секунд.


7. Canonical URL (Принудительное использование HTTPS)

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

🔹 Принудительно включает HTTPS.


8. Защита от хотлинкинга

Запрещает встраивание изображений на другие сайты:

RewriteCond %{HTTP_REFERER} !^RewriteCond %{HTTP_REFERER} !^https://(www\.)?example\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif) - [F]

🔹 Блокирует запросы на картинки с других сайтов.


Заключение

Файл .htaccess — мощный инструмент, который позволяет:
✅ Настраивать доступ.
✅ Создавать редиректы.
✅ Оптимизировать кеширование.
✅ Повышать безопасность.

Рейтинг
( Пока оценок нет )
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: