Назад | Перейти на главную страницу

Разрешить доступ к одному каталогу, когда все остальные требуют авторизации

У меня есть конфигурация Apache, которая ограничивает доступ к веб-сайту, используя следующий код -

<Directory /var/www/html/website/test/>
        AuthName "Dyne Drewett Test Site"
        AuthType Basic
        AuthUserFile /usr/local/etc/apache/.htpasswd
        require valid-user
</Directory>

Кто-нибудь знает, как я могу изменить это, чтобы разрешить полный несанкционированный доступ к одному каталогу в /test/? Спасибо.

Обновить

После некоторой помощи от @dunxd Теперь у меня есть это, и я предполагаю, что это должно быть неправильно, поскольку я все еще получаю ошибку 401 при переходе на запрашиваемую страницу (найденную с помощью /dyne_drewett/ каталог). Любая дальнейшая помощь была бы замечательной.

# Main directory rules
<Directory /var/www/html/website/test/>

    # General access to the site
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from 192.168.1

    # Authorisation settings
        AuthName "Dyne Drewett Test Site"
        AuthType Basic
        AuthUserFile /usr/local/etc/apache/.htpasswd
        require valid-user

</Directory>

# Theme directory rules
<Directory /var/www/html/website/test/wp-content/themes/dyne_drewett/>

    # General access to the folder
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all

    # Authorisation settings
        AuthType None
        require all granted

</Directory>

Есть несколько способов добиться этого.

Самый простой способ - создать еще одну запись в каталоге для подкаталога с помощью AuthType установите значение None следующим образом:

<Directory /test/public>
AuthType None
Require all granted
</Directory>

Другой подход использует другой URL, указывающий на каталог. В Документы Apache для директивы Directory есть комментарий, говорящий:

Будьте осторожны с аргументами пути к каталогу: они должны буквально соответствовать пути файловой системы, который Apache httpd использует для доступа к файлам. Директивы, применяемые к определенному, не будут применяться к файлам, доступ к которым осуществляется из того же каталога по другому пути, например, через разные символические ссылки.

Вы можете использовать это в своих интересах здесь - создайте символическую ссылку из / allowed / в свой подкаталог в / test / и используйте этот URL-адрес, чтобы указать на каталог.