禁止访问目录,但不禁止别名?

Posted

技术标签:

【中文标题】禁止访问目录,但不禁止别名?【英文标题】:Forbid access to directory, but not alias? 【发布时间】:2021-05-17 23:12:09 【问题描述】:

使用 Apache。当 /storage/ 是 /.storage/subdomain/ 的别名时,如何允许访问 /storage/ 但拒绝访问 /.storage/?

# Define alias based on subdomain
RewriteCond %HTTP_HOST ^([^.]+)$
RewriteRule ^storage/(.*)$ ".storage/%1/$1" [QSA,L]

# Forbid access to 
RewriteCond %REQUEST_URI ^/\.storage/
RewriteRule ^ - [F,L]

【问题讨论】:

【参考方案1】:

根据您显示的示例,您能否尝试以下操作。请确保在测试 URL 之前清除浏览器缓存。我们需要先修复正则表达式以获取子域,然后我们需要从规则中更改 " 并添加一个附加条件来检查以确保用户无法直接访问实际文件夹。

RewriteEngine ON
# Define alias based on subdomain
RewriteCond %HTTP_HOST ^(?:www\.)(.*)$ [NC]
RewriteRule ^storage/(.*)$ .storage/%1/$1 [NC,QSA,L]

# Forbid access to 
RewriteCond %ENV:REDIRECT_STATUS ^$
RewriteRule ^\.storage - [F,NC,L]

【讨论】:

以上是关于禁止访问目录,但不禁止别名?的主要内容,如果未能解决你的问题,请参考以下文章

在iis中怎样禁止访问目录

装完iis后提示403禁止访问是怎么回事

转nginx禁止访问某个文件和目录(文件夹)

403 - 禁止访问: 访问被拒绝。您无权使用所提供的凭据查看此目录或页面。 怎么解决 ?

wuzhicmsapache 设置禁止访问某些文件或目录

wuzhicmsapache 设置禁止访问某些文件或目录