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

Частный доступ к пути в правиле RewriteEngine

У меня есть следующий файл .htaccess (обычный для MediaWiki):

RewriteEngine On
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php [L,QSA]
RewriteRule ^/*$ /w/index.php [L,QSA]

И я хочу ограничить доступ к некоторым путям (например, ^ wiki / Private /(.*)$) с помощью пароля.

Есть ли возможность сделать это с помощью .htaccess? Каталога / wiki / отсутствует, поэтому поместить в него .htpasswd невозможно.

Спасибо.

Обычно это делается с помощью <Location> директивы, но их можно указать только в конфигурации вашего сервера (т. е. не в .htaccess файлы). Есть ли конкретная причина, по которой вы пытаетесь сделать это с помощью .htaccess файл?

Например:

RewriteEngine On
RewriteRule ^wiki/(.*)$ /w/index.php?title=$1 [PT,L,QSA]
RewriteRule ^wiki/*$ /w/index.php [L,QSA]
RewriteRule ^/*$ /w/index.php [L,QSA]

<Location /wiki/Private/>
    # put your auth configuration here
</Location>

вы можете использовать что-то вроде:

<AuthnProviderAlias file yourfile-htpasswd>
        AuthUserFile    /somedir/htpasswd
</AuthnProviderAlias>

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

AuthBasicProvider yourfile-htpasswd
AuthName "Temporary Login"
AuthType Basic
require valid-user

в .htaccess файл (в Private) должно сработать.

видеть: http://httpd.apache.org/docs/2.2/mod/mod_authn_alias.html