gpt4 book ai didi

apache - 如何使用 .htaccess 拒绝访问当前目录的所有子目录?

转载 作者:行者123 更新时间:2023-12-03 23:18:29 27 4
gpt4 key购买 nike

假设我有以下目录结构:

/
/opt
/opt/lampp
/opt/lampp/htdocs/
/opt/lampp/htdocs/...
/opt/lampp/htdocs/.../project

然后在 project/内目录,我有以下目录结构:
project/
project/.htaccess
project/index.php
project/dashboard.php
project/theme.css
project/...
project/subdir-1
project/subdir-1/...
project/subdir-2
project/subdir-2/...
project/subdir-3
project/subdir-3/...

我在 project/.htaccess中写什么|允许访问 project/ 中的所有文件目录,但拒绝访问所有子目录(即 subdir-* )和每个子目录中的所有文件?

这是我到目前为止所拥有的:

.htaccess
# Deny access by default
Order deny,allow
Deny from all

# Allow access to all PHP/CSS files in current directory
<Files ~ "[^/]\{0,}\.(php|css)$">
Allow from all
</Files>

我基本上试图允许访问所有 PHP/CSS 文件,除了带有 '/' 的文件。在文件名中;但是,结果是我无法访问任何内容。实现这一目标的正确方法是什么?

另外,是否有跨平台的方法来做到这一点(即它可以在 UNIX/Linux 和 Windows 服务器上运行)?

最佳答案

要拒绝访问/project 文件夹的所有子目录,您可以在 中使用以下 mod-rewrite 规则。项目/.htaccess :

RewriteEngine on

#if the request is for existent dirs, forbid the request
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [R=403,L]

如果您请求一个存在的目录,这将返回 403 错误响应。

如果要对两个文件/目录都执行此操作,可以使用以下重定向
RedirectMatch 403 /project/.+/.*$ 

关于apache - 如何使用 .htaccess 拒绝访问当前目录的所有子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com