如何使用密码保护index.php和/,但允许访问所有其他文件和子目录。
我的问题与此非常相似: 但是,在上面的问题中,目标是只允许访问根URL或index.php,并通过密码保护对所有其他文件和子目录的访问 给出了一个极好的答案:如何使用密码保护index.php和/,但允许访问所有其他文件和子目录。,php,.htaccess,Php,.htaccess,我的问题与此非常相似: 但是,在上面的问题中,目标是只允许访问根URL或index.php,并通过密码保护对所有其他文件和子目录的访问 给出了一个极好的答案: SetEnvIf Request_URI "^/$" allow=yes SetEnvIf Request_URI "^/index.php$" allow=yes AuthType Basic AuthName "Password Required" AuthUserFile /var/www/webinterface/.htpas
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
我的问题正好相反:我只想用密码保护目录或index.php文件的根URL,并允许自由访问目录中的所有其他文件。当我使用
时,我成功地保护了索引文件,但根url允许访问
我相信,对于比我更熟悉htaccess的人来说,答案基本上是显而易见的。如何仅对index.php和根url进行密码保护?多谢各位 不确定这是否是您真正想要的,但是像这样使用的选项
-索引如何
选项-索引跟随符号链接
不允许超限
像这样使用它:
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
- Regex模式
^/(index\.php)$
将匹配/
或/index.php
,并设置环境变量保护
Allow from All
允许所有URI
Deny from env=PROTECT
拒绝环境变量PROTECT
我也喜欢答案和解释,但出于某种原因,当我使用您的代码时,根本没有密码保护。另一个奇怪的行为是,当我将index.php添加到URL时,它的行为不同——它删除index.php文件名,只显示根URL。我已经在Apache上测试了它,它可以正常工作。删除index.php
似乎是重定向规则或代码之一的结果。您可以将.htaccess从一个新的浏览器中移出并使用此代码进行测试以进行验证。啊,谢谢您-我能够通过创建一个稍微更具体的正则表达式模式使其正常工作-我认为示例正则表达式在别处发生了重定向。非常感谢你的帮助!