інструкції файлу

Улюблених клієнтів уже: 158729

При редагуванні файлу .htaccess будьте гранично уважні: невірно зазначені директиви і сторонні символи можуть привести до внутрішньої помилку сервера (500 Internal Server Error).

Просте правило перенаправлення задається директивою Redirect, в якій міститься код відповіді, джерело перенаправлення і цільова сторінка. Щоб перенаправити запит відвідувача з головної сторінки вашого сайту на інший домен, додайте в файл .htaccess сайту директиву:

У разі, якщо перенаправлення носить тимчасовий характер, перенаправити запит зі сторінки blog на іншу сторінку того ж сайту new-blog можна ось так:

Redirect 302 / blog /new-blog/index.php

Прості правила перенаправлення ви можете створювати автоматично за допомогою розділу «Перенаправлення» в Панелі управління хостингом при переході до управління сайтом. Більш складні правила (з умовами та додатковими параметрами) складаються за допомогою модуля Apache mod_rewrite. Використання цього модуля дозволяє вирішити широкий спектр завдань, приклади деяких ми розглянемо нижче.

Захист SSL-сертифікат зобов'язує сайт завжди працювати тільки по протоколу HTTPS. Дане правило перенаправляє запити, що надійшли від відвідувачів сайту, з HTTP на HTTPS:

Помістіть це правило якомога вище в файлі .htaccess, щоб інші правила перенаправлення не завадили йому. Керівництво по правильному перекладу сайту на роботу по протоколу HTTPS ви можете знайти в нашому блозі.

У другому рядку правила міститься умова: всі запити, які надійшли не на ім'я www.example.com, перенаправляти на www.example.com. Щоб конкретизувати правило (наприклад, задати певний домен, а не все, що підходять під умову), досить прибрати знак оклику - він означає заперечення. Наприклад, дане правило перенаправляє запити з додаткового домену alias.com на основний сайт site.ru:

Додати слеш до всіх сторінок сайту можна за допомогою правила:

Це правило автоматично перенаправить пошукового робота і відвідувача, наприклад, зі сторінки example.com/shop на example.com/shop/.

Щоб, навпаки, прибрати слеш в кінці посилань на сторінки сайту, внесіть в файл .htaccess наступні директиви:

У ці правила можна додати виняток для конкретної директорії, щоб на неї правило перенаправлення не була чинною - наприклад, якщо це обумовлено особливостями CMS сайту:

Додайте цей рядок в середину правила (під іншими RewriteCond) і змініть ім'я директорії з прикладу.

ErrorDocument 404 /error404.html

Тимчасово закрити сайт буває потрібно, наприклад, під час оновлення зовнішнього вигляду сайту. Детально способи закриття сайту засобами .htaccess ми розібрали в статті нашого блогу. Розглянемо найбільш популярні способи блокування доступу нижче.

order deny, allow
deny from all
allow from X.X.X.X

RewriteEngine on
RewriteCond% example1 [NC, OR]
RewriteCond% example2 [NC]
RewriteRule ^. * $ - [F, L]

Замість example1 і example2 вкажіть User-agent роботів або програм, доступ до яких потрібно додати заборонити.

RewriteEngine on
RewriteCond%! ^ X.X.X.X $
RewriteCond%! ^ Site-closed.html
RewriteRule ^. * $ Site-closed.html

Сторінку помилки site-closed.html необхідно помістити в кореневому каталозі сайту або вказати в директиві шлях до неї.

Для поддомена успадковуються настройки .htaccess домену. Якщо в налаштуваннях .htaccess домену використовуються правила mod_rewrite, вони можуть приводити до некоректної роботи поддомена. Додайте в початок файлу .htaccess поддомена наступну директиву:

Це правило відключить mod_rewrite для вкладеної директорії поддомена.

При відкритті директорії без вказівки конкретного файлу веб-сервер шукає індексні файли index.html. index.php в порядку пріоритету для відображення. Якщо індексні файли відсутні, сервер повертає помилку 403 Forbidden, так як відображення списку файлів (лістинг директорій) за замовчуванням заборонено.

Щоб встановити в якості індексного файлу довільний файл, слід додати інструкцію:

Наприклад, така інструкція наказує веб-сервера при зверненні до сайту відкривати не сторінку, а зображення example.jpg в папці pics сайту:

В документації на сайті розробника вказано повний список директив PHP. У файлі .htaccess можна змінювати директиви, значення графи Changeable для яких відповідає PHP_INI_PERDIR або PHP_INI_ALL.

За замовчуванням відображення помилок PHP на хостингу відключено. Для того щоб бачити текст помилок PHP на сторінці сайту, додайте в файл .htaccess директиву:

php_value display_errors 1

Для того щоб зберігати, вивчати і виправляти помилки включите їх збір і зберігання з допомогою наступних рядків:

php_value error_log /home/login/domains/example.com/php_errors.log

Директорія в шляху розташування файлу повинна існувати, а якщо її немає - обов'язково створіть папку вручну. Файл журналу буде створений при появі першої помилки.

Для зміни обмеження на оперативну пам'ять для виконання процесу використовуйте наступну директиву в .htaccess:

php_value memory_limit 512M

Замість 512M вкажіть бажаний розмір обмеження. Зверніть увагу, що символ "M" (латинська M) вказується разом зі значенням. Уточнити максимальне значення оперативної пам'яті, доступне за тарифом, можна в документі.

Щоб збільшити час виконання скриптів (в секундах), додайте наступну директиву в .htaccess:

php_value max_execution_time 300

Замість 300 вкажіть бажаний розмір обмеження. Зверніть увагу, що виконання скрипта більш ніж в 10 хвилин (600 секунд) завершиться помилкою з кодом 504.

За замовчуванням через сайт можна завантажити файл об'ємом не більше 100 Мб. Якщо вам потрібно завантажувати файли бóльшего розміру, або ж обмежити їх обсяг (щоб контролювати дискову квоту), то управляти об'ємом завантаження можна через .htaccess:

php_value post_max_size 200M

Замість 200M вкажіть бажаний розмір обмеження. Зверніть увагу, що символ "M" (заголовна латинська M) вказується разом зі значенням.

Максимальний розмір переданих змінних визначається за допомогою наступної Директиви:

php_value max_input_vars 15000

Замість 15000 вкажіть необхідний розмір обмеження, який вимагає CMS сайту.

Якщо сторінка в браузері завантажується некоректно і замість звичних символів на сайті відображаються ієрогліфи, додайте в файл .htaccess рядки:

AddDefaultCharset "windows-1251"
php_value default_charset "windows-1251"

Замість "windows-1251" підставте відповідну кодування, наприклад, UTF-8. Перевірити, в якій саме кодуванні написаний сайт, можна через інструменти використовуваного браузера. Якщо сайт не знайшов коректний вид, зверніться за допомогою до служби технічної підтримки.

Щоб змусити інтерпретатор PHP обробляти файли з довільним розширенням, (наприклад. Phtml), додайте в файл .htaccess наступний рядок:

AddType application / x-httpd-php .phtml

За замовчуванням час зберігання сесій - 1440 секунд (24 хвилини). Щоб змінити цю установку додайте в .htaccess наступні директиви:

php_value session.save_path /home/login/domains/example.ru/tmp
php_value session.gc_maxlifetime 604800
php_value session.cookie_lifetime 604800

Зверніть увагу: при великій кількості відвідувачів і тривалому часу збереження сесій в папці, зазначеної в session.save_path, утворюється велика кількість файлів. Це може викликати уповільнення сайту в момент очищення старих сесій і збільшувати кількість споживаних ресурсів. Альтернативні механізми зберігання і очищення сесій:

  1. Вказувати вкладеність директорій зберігання сесій за допомогою аргументу N в session.save_path і очищати старі сесії власними скриптами (опис session.save_path в документації PHP).
  2. Реалізувати власний механізм зберігання сесій (наприклад, в MySQL) і встановити його за допомогою функції session_set_save_handler.

Інструкція по налаштуванню сервісів знаходиться у відповідному розділі поширених запитань.

Директиви SSI (Server Side Includes) за замовчуванням обробляються в файлах з розширенням .shtml (наприклад, index.shtml). Щоб SSI оброблялися і в інших файлах, необхідно в файлі .htaccess вказати типи цих файлів:

AddType text / html .html .ssi
AddOutputFilter INCLUDES .html .ssi

Замість ".ssi .html" вкажіть розширення файлів, в яких повинні оброблятися директиви SSI. Використовувати в одному і тому ж файлі PHP і SSI одночасно не рекомендується.

Для виконання скриптів CGI в будь-якої папці необхідно налаштувати веб-сервер відповідним чином за допомогою файлу .htaccess. У папці, в якій повинні виконуватися скрипти CGI, створіть файл .htaccess виду:

Options + ExecCGI
AddHandler cgi-script .cgi .pl

Замість ".cgi .pl" вкажіть список розширень, які повинні оброблятися як скрипти. За допомогою Файлового менеджера або FTP-клієнта встановіть файлів скриптів права на виконання (755).

Options + ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond%! -f
RewriteRule ^ (. *) $ /site.wsgi/$1 [QSA, PT, L]

Щоб обробляти скрипти Node.js, вкажіть в .htaccess наступні директиви:

SetEnv GHOST_NODE_VERSION_CHECK false
PassengerStartupFile app.js
PassengerResolveSymlinksInDocumentRoot on
Require all granted
PassengerAppType node
PassengerAppRoot /home/login/domains/example.com/public_html
Options -MultiViews

Для обробки скриптів за допомогою Ruby on Rails вкажіть в .htaccess наступні директиви:

Options -MultiViews
PassengerResolveSymlinksInDocumentRoot on
RailsEnv production
SetEnv SECRET_KEY_BASE% секретний ключ%

Якщо ви не знайшли відповіді на своє питання в цьому розділі, то ви завжди можете звернутися до нас по допомогу через форму зворотного зв'язку в розділі «Підтримка» Панелі управління.

бюрократія