使用 .htaccess 隐藏文件夹
Posted
技术标签:
【中文标题】使用 .htaccess 隐藏文件夹【英文标题】:Hide folders with .htaccess 【发布时间】:2010-11-25 19:32:36 【问题描述】:是否可以隐藏我的根文件夹中的文件夹? 以防我的 index.php 消失你知道吗?
如果有人请求,我是否也可以显示 404 错误?
【问题讨论】:
【参考方案1】:在要隐藏文件夹列表的目录中创建一个文件名 .htaccess 和此代码
RewriteEngine on
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^ - [R=404,L]
【讨论】:
【参考方案2】:我使用了这个代码:
在您的主根 .htaccess 中放置流动代码:
RewriteEngine on
RewriteRule ^dfjgekbjvrskzcnfvberidurvf/?(.*)$ /folder1/$1 [L]
Then at .htaccess file in folder1 directory put this :
RewriteEngine on
RewriteCond %THE_REQUEST !dfjgekbjvrskzcnfvberidurvf
RewriteRule ^ - [F,L]
【讨论】:
【参考方案3】:在我的情况下,我这样做了,但它显示错误 500。这是我的 .htaccess
RewriteEngine on
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_URI !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %REQUEST_URI !^/\.well-known/pki-validation/[A-F0-9]32\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %REQUEST_URI !^/\.well-known/pki-validation/[A-F0-9]32\.txt(?:\ Comodo\ DCV)?$
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Options - Indexes
谢谢
【讨论】:
【参考方案4】:我通过在我不想访问的所有文件夹上添加一个 index.html 来解决这个问题。 index.html 页面包含一行,其中包含以下 header("Location:thepageiwanttoshown.html")
。这样,如果用户不小心访问了受限制的文件夹,他们将被即时重定向。希望对你有帮助
【讨论】:
【参考方案5】:如果您确实想为子文件夹显示 404 错误,请在 /.htaccess
中尝试以下操作:
RewriteEngine on
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^ - [R=404,L]
如果请求一个已存在的/folder
或/subfolder
,上述规则会将其重写为/404
。
【讨论】:
【参考方案6】:这是我对同一问题的首选解决方案(虽然这显示访问被拒绝而不是 404):
<files "/path/to/single/file/or/folder">
order allow,deny
deny from all
</files>
这也使您可以选择授予对某些 IP 的访问权限(在这种情况下,它拒绝对所有 IP 的访问)
如果您想使用模式,可以将“/path/to/single/file/or/folder”替换为正则表达式。否则,您必须为要阻止访问的每个特定文件或文件夹使用多个块。
【讨论】:
【参考方案7】:对我来说,添加总是有效的
<Directory "/var/www/yourfolder"> IndexIgnore * </Directory>
到文件 /etc/apache2/sites-available/default
【讨论】:
【参考方案8】:正如duskwuff所说,你需要的是
Options - Indexes
这将导致该特定目录出现 403 禁止错误。因此,要提供自定义错误页面,您将需要
ErrorDocument 403 myErrorPage.html
希望对你有帮助
【讨论】:
这个答案晚了 5 个小时,但应该是公认的答案。这将在没有索引文件的情况下产生错误,然后您可以处理或使用默认服务器。接受的答案将简单地隐藏目录视图页面中的文件夹。所以它会产生误报。旧帖子但在谷歌搜索结果中。【参考方案9】:你想要的大概是
Options -Indexes
如果没有找到 DirectoryIndex 文件,只会给出 404 错误。
【讨论】:
我认为它是一个 403。【参考方案10】:IndexIgnore *
以上内容将阻止列出所有文件。这里*
充当通配符。如果需要,您可以将其替换为更具体的内容。
【讨论】:
替换*
如何?假设我要隐藏 3 个文件和 1 个文件夹 (file1.jpg, some.pdf, else.html, i-am-a-folder
)
IndexIgnore 不会禁止访问它所保护的文件夹中的已知文件位置。 htaccess 与:order allow,deny
deny from all
会做得更好。以上是关于使用 .htaccess 隐藏文件夹的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 .htaccess 隐藏 .php URL 扩展名?