Това е първият път, в който някога съм опитвал да работя с .htpasswd и .htaccess файлове, така че, моля, посочете моите детски произведения.
Имам корен на документа на apache на /www/
на моя сървър на debian. Вътре има папка с име Logs/
което искам да огранича достъпа с помощта на htpasswd. Създадох файла си htpasswd, използвайки командата htpasswd на черупката. И това е резултатът:
user: hjp: hjpotter92:
Сложих този файл на име .htaccess
вътре /www/
. The Logs/
има следния htaccess файл в него:
AuthName 'Restricted Area' AuthType Basic AuthUserFile /www/.htpasswd AuthGroupFile /dev/null require valid-user
Това отново беше създадено с помощта на онлайн инструмент (забравих името / връзката му и не мога да търся в историята на браузъра сега).
Проблемът, тъй като може би вече ви е поразил, е, че не изпитвам никаква промяна в достъпа до папката ми „Регистри“. Папката все още е достъпна за всички. Използвам apache като root потребител (ако това има значение / помага). Моля, помогнете / насочете ме. Опитах да прочета някои ръководства за htaccess и следвах някои от по-старите въпроси за SO, но все още не съм намерил начин да огранича достъпа до папката Logs с парола.
- 1 FYI, трябва да бъде
.htaccess
и трябва: 1.) да не пускате apache като root (ужасно за сигурността) и 2.) да използвате удостоверяване с обобщена информация, освен ако нямате достъп само до този URL чрез HTTPS. Защото дори и твоят.htpasswd
файлът е шифрован SHA1, браузърът ще изпраща паролата в обикновен текст, ако използвате основно удостоверяване. - @ Lèsemajesté Напълно съм наясно с работата на apache като root, но тъй като мрежата е доста частна (не повече от 300 потребители, всички от които познавам), така че е добре. Използвам MD5 вместо SHA1 в .htpasswd.
- Какъв е смисълът изобщо да съхранявате паролите в MD5 SHA1, ако вашият Apache работи на root. Със сигурност не се притеснявате за сигурността тогава и хеширането на паролите е безсмислено.
Реших проблема с помощта на човек, когото познавам. :)
Добави този сегмент към httpd.conf:
Allow from all AuthName 'Restricted Area' AuthType Basic AuthUserFile /www/.htpasswd AuthGroupFile /dev/null Require valid-user
Защото има ред вътре httpd.conf
както следва:
AllowOverride None
Изглежда, че сте решили проблема си, като поставите съдържанието на вашия .htaccess файл в httpd.conf.
Друго решение би било промяната на реда във вашия httpd.conf от
AllowOverride None
да се
AllowOverride All