Използване на файлове .htaccess
45 / 50

Да разгледаме способ за настройка на конфигурация на уеб-сървъра Apache с помощта на файла .htaccess.

В повечето случаи ползващия сървъра няма права за достъп до файла за настройки на конфигурацията на сървъра (httpd.conf), чието действие се разпространява за всички ползващи. Файла .htaccess позволява да се правят промени в конфигурацията, които се отразяват само на вашия сайт.

За може настройките на файла .htaccess да не се игнорират от системата, във файла за настройки на конфигурацията на сървъра httpd.conf се включва разрешение за ползване на .htaccess.. Проверете в службата за поддръжка за съществуването на такова разрешение.

Файла .htaccess съдържа директиви, чиито действия се разпространяват на каталога, в който дадения файл е разположен, а също и на всички подкаталози в този каталог. Ако .htaccess е разположен в корневия каталог на сървъра, то неговото действие се разпространява на целия сървър, освен тези каталози, в които има разположен свой файл .htaccess. Директивите на файлове .htaccess се прилагат по реда на тяхното местоположение. По този начин, директивите от файла в дадения каталог имат по-висок приоритет, от директиви в каталог, разположен нагоре в дървото на каталозите.

При внасяне на промени във файл .htaccess няма необходимост от рестартиране на сървъра. Файла .htaccess се проверява при всяко обръщение към сървъра, така че промените влизат в сила веднага след тяхното внасяне. Тъй като файла е служебен, той не е достъпен за ползващите от уеб-браузера.

В общия случай синтаксиса на файла .htaccess е аналогичен на синтаксиса на главния файл на конфигурацията. Но действието на директивите от файла може да бъде ограничено от директива AllowOverride. Тя определя, какви типове директиви на файла .htaccess могат да доминират над по-ранни настройки за достъп.

Обърнете внимание! При инсталация на стъпката за предварителна проверка и извършва проверка за обработка на файлове .htaccess.

В демонстрационния сайт файла .htaccess по подразбиране съдържа следните директиви:

Options -Indexes 
ErrorDocument 404 /404.php

#php_flag allow_call_time_pass_reference 1
#php_flag session.use_trans_sid off

#php_value display_errors 1

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8


  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]



  AddType application/x-httpd-php .ico



  DirectoryIndex index.php index.html



  ExpiresActive on
  ExpiresByType image/jpeg "access plus 3 day"
  ExpiresByType image/gif "access plus 3 day"

Внимание! За активизиране на закоментираните PHP директиви е необходимо да се свали знака за коментар (#) в началото на реда. Ако на вашия сървър Apache не е включено разрешение за ползване на PHP-флагове, изпълнението на дадените директиви води до възникване на вътрешна грешка (500). В случай на възникване на грешка е необходимо отново да закоментирате директивите, поставяйки в началото на всяка знак #.

За останалите PHP директиви, необозначени със знак за коментар (#), е добавена проверка за наличие на необходимите модули Apache в системата. Изпълняването на дадените директиви не води до възникване на грешки в системата.

  1. PHP директива php_flag session.use_trans_sid off прави изключване на добавяне на идентификатора на сесии в линка на сайта.
  2. Значение на PHP флага php_value display_errors, равно на 1, сочи че е включено разрешение за извикване на съобщения за възникване на грешки. Директива php_value error_reporting определя нивото на грешки, при възникване на които ще се показва съобщение. С помощта на посочените директиви може да се настрои режим на показване на съобщения за грешки от интерпретатора на PHP.
  3. Директиви php_value mbstring.func_overload 2 и php_value mbstring.internal_encoding UTF-8 управляват настройки на библиотека mbstring.
  4. Блока директиви IfModule mod_rewrite.c - е настройка на правила за mod_rewrite.
  5. Директива AddType application/x-httpd-php .ico определя обработка на разширения ico както php-файлове.
  6. Директива ExpiresActive on включва кеширане на изображения, позволяващи ускоряване тяхното зареждане при повторно запитване към страниците на сайта.
    Директиви ExpiresByType image/jpeg "access plus 3 day" и ExpiresByType image/gif "access plus 3 day", на свой ред, определят формат за изображения и срок, за който ще бъде направено кеширане. По подразбиране се прави кеширане на изображения с формат .jpeg и .gif със срок от 3 дена.
Внимание! След внасяне на изменения, файла .htaccess трябва да се съхрани в UNIX-формат (за менажер FAR опция "Съхрани като UNIX-текст").
0

 Премини тест за самопроверка


 Необходимо ниво на права на сървъра | Описание на курса | Грешки, възникващи при работа с базата данни