我有以下.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 放入其中。
谢谢。
答案1
您通常会使用<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>
答案2
你可以使用类似的东西:
<AuthnProviderAlias file yourfile-htpasswd>
AuthUserFile /somedir/htpasswd
</AuthnProviderAlias>
在服务器配置文件中为身份验证提供程序分配别名。然后,类似:
AuthBasicProvider yourfile-htpasswd
AuthName "Temporary Login"
AuthType Basic
require valid-user
在.htaccess
文件(在Private
)中应该可以工作。