У меня есть следующий файл .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