我的问题与此非常相似: getting "authentication required" when requesting / instead of /index.php
但是,在上面的问题中,目标是只允许访问根URL或index.php并密码保护对所有其他文件和子目录的访问。
给出了一个很好的答案:
SetEnvIf Request_URI "^/$" allow=yes
SetEnvIf Request_URI "^/index.php$" allow=yes
AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Options +FollowSymLinks
Order Deny,Allow
Satisfy any
Deny from All
Require valid-user
Allow from env=allow
我的问题恰恰相反:我只想密码保护目录的根URL或index.php文件,并允许免费访问目录中的所有其他文件。当我使用<FilesMatch "index.php">
时,我成功保护了索引文件,但根URL允许访问。
对于那些比我更熟悉htaccess的人,我确定答案基本上是显而易见的。我如何只用密码保护index.php和根网址?谢谢。
答案 0 :(得分:2)
像这样使用:
SetEnvIfNoCase Request_URI "^/(index\.php)?$" PROTECT
AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Require valid-user
Satisfy any
Order Allow,Deny
Allow from All
Deny from env=PROTECT
^/(index\.php)?$
将匹配/
或/index.php
,并设置env变量PROTECT
Allow from All
允许所有URI Deny from env=PROTECT
拒绝env变量PROTECT
答案 1 :(得分:0)
不确定这是否是您真正想要的,但是像这样使用的选项import {NameOfModule} from "name of file B";
呢?
-Indexes