是否可以隐藏根文件夹中的文件夹? 万一我的index.php会消失,你知道吗?
如果有人请求,我是否还会显示404错误?
答案 0 :(得分:36)
你想要的可能是
Options -Indexes
如果没有找到DirectoryIndex文件,则会发出404错误。
答案 1 :(得分:21)
IndexIgnore *
以上内容将阻止列出所有文件。这里*
充当通配符。如果需要,您可以用更具体的内容替换它。
答案 2 :(得分:13)
正如duskwuff所说,你需要的是
Options - Indexes
这将导致该特定目录上的403禁止错误。因此,要提供您需要的自定义错误页面
ErrorDocument 403 myErrorPage.html
希望这有帮助
答案 3 :(得分:1)
这是我对同一问题的首选解决方案(虽然这显示了拒绝访问而不是404):
<files "/path/to/single/file/or/folder">
order allow,deny
deny from all
</files>
这也为您提供了访问某些IP的选项(在这种情况下,它拒绝访问所有IP)
如果要使用模式,可以使用正则表达式替换“/ path / to / single / file / or / folder”。否则,您必须为要阻止访问的每个特定文件或文件夹使用多个块。
答案 4 :(得分:1)
如果您确实要为子文件夹显示404错误,请在/.htaccess
中尝试以下操作:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [R=404,L]
如果请求现有的/folder
或/subfolder
,则上述规则会将其重写为/404
。
答案 5 :(得分:1)
我通过在我不想访问的所有文件夹上添加index.html来解决这个问题。 index.html页面包含一行,其中包含以下header("Location:thepageiwanttoshown.html")
。这样,如果用户意外访问受限制的文件夹,他们将被动态重定向。我希望它有所帮助
答案 6 :(得分:1)
在我的情况下,我这样做但它显示错误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
由于
答案 7 :(得分:0)
对我而言,它总是适用于添加
<Directory "/var/www/yourfolder"> IndexIgnore * </Directory>
到文件/ etc / apache2 / sites-available / default
答案 8 :(得分:0)
我使用了以下代码:
在您的主要根目录.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]
答案 9 :(得分:0)
在要隐藏文件夹列表和目录的目录中创建文件mame .htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [R=404,L]