【问题标题】:Hide folders with .htaccess使用 .htaccess 隐藏文件夹
【发布时间】:2010-11-25 19:32:36
【问题描述】:

是否可以隐藏我的根文件夹中的文件夹? 以防我的 index.php 消失你知道吗?

如果有人请求,我是否也可以显示 404 错误?

【问题讨论】:

    标签: .htaccess directory


    【解决方案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 会做得更好。
                  猜你喜欢
                  • 2020-07-05
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-01-24
                  • 2014-07-23
                  • 2015-12-14
                  • 2015-07-19
                  • 1970-01-01
                  • 2019-02-23
                  相关资源
                  最近更新 更多