Перевірка роботи htaccess і стиснення для прискорення сайту

Поговоримо відверто про htaccess і стиснення.

Думаю що зустрічалися з ситуацією коли ваш сайт перестає відповідати на запити.

Або починає повільно завантажуватися і починає поводитися дивно. На простому хостингу крім вашого сайту на сервері знаходиться ще два десятка інших сайтів.

Всі вони різні за потужністю, організованості і трафіку. І коли ваш сусід запускає на своєму хостингу складні або надлишкові в алгоритмах скрипти, це відгукується і на вас.

Файл .htaccess дозволяє змінювати багато настройки вашого сайту ... як настройки веб-сервера Apache, так і опції PHP.

Перевірка роботи htaccess і стиснення для прискорення сайту

Ви можете використовувати htaccess з різними настройками для різних каталогів.

У корені сайту ви можете оголосити -Indexes, а в обраних каталогах створити ще один файл .htaccess і в ньому оголосити + Indexes.

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

І в тому числі і на піддомени (оскільки директорії піддоменів є піддиректоріями основного сайту).

Як правило, файл .htaccess створюється в кореневій директорії сайту і іноді в директоріях, які вимагають специфічної поведінки веб-сервера.

Можна і потрібно (звичайно, якщо такий немає) самостійно створювати файл .htaccess за допомогою FTP-клієнта і працювати з ним як з будь-якими іншими файлами вашого сайту.

Деякі FTP-клієнти вважають файли, що починаються з точки, прихованими і не відображають їх за замовчуванням. У таких випадках для того, щоб бачити файл .htaccess, необхідно в настройках FTP-клієнта включити настройку «Відображати приховані файли».

Щоб файли в будь-якої директорії завжди оброблялися без оптимізації, необхідно в цій директорії створити файл .htaccess. Цей файл може не містити ніяких директив, досить лише його існування.

Важливо не забувати, що відключення оптимізації може вплинути на швидкість роботи Вашого сайту і використання ресурсів тарифного плану.

Для під-домену успадковуються настройки .htaccess домену.

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

Якщо індексні файли відсутні, сервер повертає помилку 403 Forbidden, так як відображення списку файлів в директорії за замовчуванням заборонено.

Щоб помилка 403 Forbidden не відображається, або створіть в директорії індексний файл, або додайте в файлі .htaccess опцію:

За замовчуванням індексним файлом вашого сайту веб-сервер вважає файл (в порядку пріоритету): index.html. index.php.

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

Наприклад, така інструкція наказує веб-сервера при зверненні до сайту відкривати як індексну сторінки скрипт на мові Perl, розміщений в директорії cgi-bin вашого сайту:

Як включити відображення помилок PHP?

Для відображення помилок PHP додайте в файл .htaccess директиву:

php_value display_errors 1

Як змінити максимальний розмір файлів в PHP?

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

php_value upload_max_filesize 20M
php_value post_max_size 20M

Замість 20M вкажіть бажаний розмір обмеження. Значення цих параметрів не може бути більше 50M. Зверніть увагу, що символ «M» (латинська M) вказується разом зі значенням.

Як вказати інтерпретатору PHP необхідність обробляти не тільки файли .php?

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

Наприклад, така інструкція вкаже інтерпретатора PHP на необхідність обробляти файли з розширенням .phtml:

AddType application / x-httpd-php .phtml

Як змінити час зберігання сесій PHP

За замовчуванням час зберігання сесій - 1440 секунд (24 хвилини), cookie з ідентифікатором сесії - до закриття браузера користувачем.

Для зміни часу зберігання сесій PHP необхідно внести кілька змін в .htaccess.

Можливо, безпосередньо для вашого сайту більш ефективним виявиться альтернативний механізм зберігання даних, прив'язаних до відвідувача (наприклад, тільки через cookie), або альтернативний механізм зберігання сесій PHP (встановлений за допомогою session_set_save_handler ()).

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

# Встановіть максимальний час життя сесії в секундах.
# 604800 - 1 тиждень.
php_value session.gc_maxlifetime 604800

# Встановіть час життя cookie, яка зберігає ідентифікатор сесії
# В браузері користувача.
php_value session.cookie_lifetime 604800

Це може викликати уповільнення сайту в момент запуску механізму очищення старих сесій і збільшувати кількість ресурсів, необхідних для роботи сайту.

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

Як включити SSI

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

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

Замість «.ssi .html» вкажіть розширення файлів, в яких повинні оброблятися директиви SSI.

Зверніть увагу: не рекомендується використовувати в одному і тому ж файлі PHP і SSI одночасно.

Як налаштувати виконання скриптів CGI?

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

  1. У папці, в якій повинні виконуватися скрипти CGI, створіть файл .htaccess виду: Options + ExecCGI
    AddHandler cgi-script .cgi .pl Замість «.cgi .pl» вкажіть список розширень, які повинні оброблятися як скрипти.
  2. Завантажте скрипти в папку.
  3. За допомогою Вашого файлового менеджера встановіть файлів скриптів права на виконання (755).

Як змінити обмеження на використання оперативної пам'яті в PHP?

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

php_value memory_limit 128M

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

Як зробити так, щоб сайт завжди відкривався за основним імені?

Замініть example.com на основне ім'я вашого сайту. Тепер при зверненні до сайту користувачі будуть автоматично перенаправлені на його основне ім'я.

Трохи SEO (куди ж без нього)

Обов'язково не забути про умову .

Якщо не знайдеться в хостера даного модуля і ваш сайт стане видавати 500-ую помилку. Даний конкретний модуль входити в збірку Апача за замовчуванням. Ну а раптом ... Хостери і їх адміни бувають всякі.

У цій частині користі більше для SEO. Модуль rewrite як випливає з його назви займається перенаправлення

У цій частині файлу ми вказали дві склейки: ми склеїли ваш_сайт і www.ваш_сайт Навіть якщо користувач набере ваш сайт без WWW його перекинути 301 редеріктом на www.ваш_сайт.

А також ми позбулися /index.php в рядку запиту. Якщо користувач набере www.ваш_сайт / index.php його перекине (знову 301 редеріктом) на www.ваш_сайт.

Тепер пошукачі не будуть плутатися між www і не дублюватимуть головну сторінку в результатах індексування вашого сайту. Гугл СЕО склейки домену, якщо не розумієте навіщо це потрібно.

Отже ... .htcces і стиснення для прискорення сайту.

Ніхто не сперечається що дуже навіть корисно, коли ваші сторінки завантажуються швидше. Тому люди і придумали архівувати файли.

У Апача є два модуля стиснення.

Обидва не є модулями за замовчуванням, тому не обов'язково можуть бути присутніми у вашого провайдера. Але як показала практика у 99% провайдерів один з них варто.

Найбільш поширений mod_deflate. Щоб його за допомогою стискати весь контент на вашому сайті додайте в .htaccess наступні рядки:

Як бачите ми повинні перерахувати mime type файлів, які слід піддавати стиску.

Другий менш популярний модуль це mod_gzip, щоб увімкнути стиснення з його допомогою додайте ось такі рядки:

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

Але використовують його рідше. А зі стиснення я навіть не беруся судити, який із модулів краще. Я сильної різниці не помітив при тестах. В принципі, всі деталі Gzip можна дуже чітко відстежити в Page Speed, але так само є онлайн сервіси, які здатні дати вам інформацію про те, чи включена ця архівація чи ні.

Можете скористатися цим або цим онлайн сервісом для перевірки включення стиснення на вашому сервері.

Виявляється можна швидше ... Якщо застосувати кешування сторінок.

У кешування є і плюси і мінуси, тому підходити до цього питання треба підготувавшись. Для динамічно оновлюється сайт кожен 2-3 хвилини, наприклад популярного форуму, потрібно врахувати, що користувач повинен бачити актуальну інформацію.

Але у будь-якого сайт є контент, який більш-менш статичною. Наприклад ті ж картинки, або файли стилів. Тому нам потрібно по різному використовувати кешування різного вмісту на сайті.

В html розмітки ми завжди можемо використовувати meta теги. І через php ми може встановлювати заголовки відповіді сервера. Залишається питання, як бути з css, js, image і т.д. і т.п.

Допомогти нам у цьому можуть два модуля: mod_headers і mod_expires які можуть встановити заголовки в відповідь сервера і підказати вашому браузеру, що і як потрібно кешувати.

Один з модулів зазвичай стоїть біля провайдера, але як і у випадку з будь-яким модулем, який не входить в стандартну збірку Апача, 100% гарантії ніхто вам не дасть. Тому знову, щоб уникнути 500й помилки вказує умови для кожного з модулів.

Ось такий синтаксис у mod_headers.

У даній секції я відключив кешування php файлів. Хоча на мою думку невеликий часовий інтервал кешування їм не зашкодить.

5-30 секунд, це інтервал часу, за який мало що змінюється. А багато користувачів люблять користуватися клавішею back (повернутися назад).

Щоб не забивати їм сторінку вдруге, а підхопити її з кеша, розумний інтервал кешування все ж доречний.

У другій секції де йдуть умови для mod_expires я саме так і роблю - для php ставлю невеликий інтервал кешування.

У цій скромній статті описано далеко не всі. Я торкнувся тут лише поверхні. Насправді можливості .htaccess куди багато обширнішим, ніж описано в статті. Але я і не переслідував мету переказати вага манаул по .htaccess.

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

В результаті всіх маніпуляцій у мене стоїть такий файл такого змісту:

Як на мене забагато там всячини а може і помиляюся. Для тих у кого все вийшло, йдемо на www.webpagetest.org і пробуємо міряти красу до і після.

А тут вже готовенький .hatcces для користування: .htaccess

Перевірка роботи htaccess і стиснення для прискорення сайту

Думаю вийшов htaccess і стиснення для прискорення сайту!

Навігація по публікаціям

Схожі статті