В МОМЕНТА ТОВА Е СТРАНИЦА САМО ЗА SCRTCCHPAD И НЕ ТРЯБВА ДА СЕ ПРЕМЕСТВА ОТТУК
Този документ трябва да се използва за изготвяне на нова версия на официалните httpd документи с инструкции
Моля, прегледайте/изтрийте http://wiki.apache.org/general/htaccessonce, след като тази страница премине от ScratchPad
Не се препоръчва използването на .htaccess файлове, тъй като те могат да имат вредно въздействие върху производителността на сървъра. Използвайте ги само когато е необходимо.
Целта на .htaccess файловете е да предоставят средство за конфигуриране на Apache за потребители, които не могат да променят основния конфигурационен файл (обикновено httpd.conf; вижте DistrosDefaultLayout ).
Не наистина; Файловете .htaccess могат да се използват за осигуряване на защита с парола по същия начин, по който основните конфигурационни файлове могат да се използват за осигуряване на защита с парола; няма нищо специално за .htaccess за тази цел.
Не, можете да дефинирате името му чрез директивата AccessFileName. Това обаче не е препоръчителна практика, особено ако ще предоставите споделен хостинг или нещо подобно, където неинформираните хора ще имат уеб пространство и очакват да се поддържат .htaccess файлове.
Разрешаването на .htaccess файлове ще накара Apache да ги търси при всеки достъп до вашия сървър. Тъй като родителските директории също се търсят, това ще отнема известно (малко) време и може да повлияе на производителността на вашия сървър. За по-добро обяснение вижте HtaccessGotchas. (преместете това обяснение тук?)
.htaccess файловете наистина трябва да се използват само когато не можете директно да редактирате основните конфигурационни файлове.
Не трябва да използвате .htaccess, когато:
имате достъп да редактирате конфигурационния файл(ове) на главния сървър. производителността на сървъра е от значение за вас. ненадеждни хора хостват уебсайтове на сървъра. (Вижте Как мога да попреча на потребителите да използват .htaccess? и Как мога да контролирам какво могат потребителите правя ли с .htaccess файлове? (Как да се свържа със заглавия на този документ????) )Използвайте любимия си редактор, за да създадете .htaccess файл в папката, където искате да влезе в сила. Уверете се, че файлът може да бъде прочетен от UID на Apache.
.htaccess файловете са контейнери за подмножество от директиви на Apache. .htaccess файловете се прилагат към директорията, в която са поставени, и всички нейни наследници. Т.е. файл .htaccess в /path/to/site, ще се прилага към тази директория, но и към /path/to/site/images!
Това означава, че можете да мислите за файловете .htaccess като динамично добавяне на следното към основната конфигурация на Apache:
# Съдържанието на .htaccess отива тукТрябва да поставите файла .htaccess в директорията, където искате да влезе в сила. Например, ако искате да използвате файл .htaccess за принудително удостоверяване за http://www.example. com/admin и вашият DocumentRoot е настроен на /var/www/html/www.example.com, бихте поставили файла .htaccess в /var/www/html/www.example.com/admin.
Можете да поставите във файл .htaccess всяка директива на Apache, която администраторът реши да активира, от подмножеството директиви, които Apache поддържа във файлове .htaccess. Това работи, като зададете правилно директивата AllowOverride.
За да проверите какво е активирал администраторът, свържете се с него или с вашия хостинг доставчик, или просто опитайте.
За да проверите какви директиви поддържа Apache във файловете .htaccess, потърсете директивата, която искате да използвате в документацията, и проверете секцията Контекст:. Ако пише .htaccess, тогава тази директива е валидна в .htaccess, освен ако не е била деактивирана от администратора.
Пример. Да предположим, че наистина трябва да използвате .htaccess файлове и че искате да защитите с парола местоположението, за което говорихме по-горе, намиращо се на /var/www/html/www.example.com/admin. .htaccess файл за тази задача трябва да изглежда така:
/var/www/html/www.example.com/admin/.htaccess
AuthType BasicAuthName "Изисква се удостоверяване"AuthUserFile /etc/htpasswds/.htpasswd.example.comRequire valid-userOrder deny,allowЧрез настройка на AllowOverride в правилната директива. Вижте документацията на AllowOverride.
Това не е валидна причина, тъй като можете да използвате Include.
(Предлагам да преместите тази част в нейния собствен раздел) Можете да използвате директивата Include, за да облекчите това, ако наистина ви притеснява! Да видим как.
Предполагаме, че не харесвате огромни конфигурационни файлове и че например искате да предоставите удостоверяване с парола за всички ваши виртуални хостове. Можете да поставите .htaccess в корена на всеки виртуален хост или да създадете поддиректория в конфигурационната директория на Apache, съдържаща конфигурационен файл за всеки vhost с правилните директиви – като /usr/local/apache2/conf/vhosts-protection . След това в httpd.conf можете да пишете
Включете /usr/local/apache2/conf/vhosts-protection/*.conf/usr/local/apache2/conf/vhosts-protection/www.example.com.conf
AuthType BasicAuthName "Изисква се удостоверяване"#Променете следното на един файл за всички домейни или на различна схема за именуване, ако харесватеAuthUserFile /etc/htpasswds/.htpasswd.example1.com Изискване valid-userOrder allow,denyAllow from allИ така нататък за останалите ви виртуални хостове. (край на предложението)
В конфигурацията на главния сървър поставете следното във вашия блок от най-високо ниво.Напр.
# ... other directivesAllowOverride None# ... other directivesЗапомнете, че приложението на ablock е рекурсивно. Така че, ако го зададете на най-високо ниво, ще се прилага за всички поддиректории, освен ако изричното не е обърнато чрез друга директива.
Опитайте да поставите боклук в тях. Ако се чете, ще получите вътрешна грешка на сървъра при достъп до този URL адрес. Ако се чете, продължете към HtaccessGotchas, за да намерите повече за това, което може да не е наред.
PREV: Сървърът е недостъпен - Настолни компютри и лаптопи - Форум на Plex
NEXT: Проблеми със сървъра, които ви развалят (и решения!) | Блог на Udemy