Как использовать другой пароль в подкаталоге (.htaccess) - PullRequest
3 голосов
/ 05 апреля 2011
Order Deny,Allow
AuthUserFile /var/www/subdirectory/.htpasswd
AuthName "Authorization Required"
AuthType Basic
require valid-user

^ мой файл .htaccess.

Однако родительский каталог имеет пароль.

Я хочу, чтобы этот каталог запрашивал только один пароль (даже если он запрашиваетвторой пароль, второй пароль можно оставить пустым. Несмотря на это, я хочу удалить второй пароль, потому что он раздражает).

Ответы [ 2 ]

4 голосов
/ 05 апреля 2011

Если вы хотите, чтобы подкаталог запрашивал тот же пароль, что и родительский каталог, вам вообще не нужен .htaccess в подкаталоге.

Или вы пытаетесь использовать другой пароль в подкаталоге?

[Update:] В этом случае вам нужно ограничить родительский require, чтобы он не включал подкаталог, о котором идет речь - например, директивой FilesMatch . Сохраните .htaccess вашего подкаталога и измените родительский, добавив в него что-то вроде:

<FilesMatch "\.(private|dirs|are|listed|here)">
    require valid-user
</FilesMatch>

(Кажется, что нет способа отменить регулярное выражение FilesMatch; но я могу ошибаться.)

0 голосов
/ 11 октября 2017

.htaccess применяется ко всем файлам и подпапкам.Ваш файл .htaccess со следующей структурой дерева защитит паролем dir1 / index.html , dir1 / subdir1 / index.html и dir1 / subdir1 / example.html .

- dir1
| - .htaccess
| - index.html
| - subdir1
  | - index.html
  | - example.html

Чтобы защитить паролем только subdir1, переместите файл .htaccess в подкаталог.При следующей структуре защищенные файлы: dir1 / subdir1 / index.html и dir1 / subdir1 / example.html

- dir1
| - index.html
| - subdir1
  | - .htaccess
  | - index.html
  | - example.html

Для защиты каталога паролем, кромедля подкаталога дополнительный файл .htaccess должен быть помещен в подкаталог для переопределения параметров родительского файла .htaccess.

- dir1
| - .htaccess
| - index.html
| - subdir1
  | - .htaccess
  | - index.html
  | - example.html

In dir1 / subdir1 / .htaccess :

Require all granted

Тогда dir1 / index.html требуется пароль, но не файлы в dir1 / subdir1 / .Информацию о Require all granted.

см. В https://httpd.apache.org/docs/2.4/howto/access.html. Требуется один пароль для родительской папки и другой пароль для дочерней папки:

- dir1
| - .htaccess
| - index.html
| - subdir1
  | - .htaccess
  | - index.html
  | - example.html

В dir1 / subdir1 / .htaccess использует другой AuthUserFile или требует другого пользователя / группы / требования:

# Use a different list of Users for this directory
AuthUserFile /var/.htpassrd_subdir1

# Or require a different user
#require user subdir1User

# Or use a different type of authentication altogether
#AuthUserFile /var/www/subdirectory/.htdigest
#AuthName "Subdir1-Realm"
#AuthType Digest
#require valid-user

Аутентификация не может быть вложенной.Добавление аутентификации в подкаталог переопределит конфигурацию аутентификации в родительском каталоге.Если родительская и дочерняя папки защищены паролем и кто-то просматривает файл в дочерней папке, ему предлагается ввести один пароль;пароль, настроенный для дочерней папки.

...