php - 如何密码保护 index.php 和/,但允许访问所有其他文件和子目录。

标签 php .htaccess

我的问题与这个非常相似: 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 和根 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
  • 正则表达式 ^/(index\.php)?$ 将匹配 //index.php 并设置环境变量 保护
  • Allow from All 允许所有 URI
  • Deny from env=PROTECT 拒绝环境变量 PROTECT

关于php - 如何密码保护 index.php 和/,但允许访问所有其他文件和子目录。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46775268/

相关文章:

regex - 使用 htaccess 将文件夹重定向到另一个文件夹

sql - 自定义帖子类型每年/每月存档

Apache 服务器 RewriteRule 到 Tomcat WAR

javascript - 作为表格单元格背景的静态进度条

javascript - 如何从下拉列表中获取选定的值并将其传递给 sql 查询

php - 如何在Laravel中过滤每个projectId的taskId?

php - 如何有效地从 2 个 mysql 表中选择唯一的行/记录数据并返回一个按时间戳排序的合并结果?

php - 简化将 html 下拉列表的选项值检索到 php 数组中的过程

apache - PHP : How to code . htaccess 使其无需编辑即可在本地主机和在线上运行

.htaccess - 想要重定向除我以外的所有访客