Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我限制对一个文件夹的访问时,它';影响所有网站的访问_Php_.htaccess - Fatal编程技术网

Php 当我限制对一个文件夹的访问时,它';影响所有网站的访问

Php 当我限制对一个文件夹的访问时,它';影响所有网站的访问,php,.htaccess,Php,.htaccess,我在服务器上的www文件夹下有我的.htaccess,这个文件包含一些重定向规则,没有其他内容 在www文件夹下,我有另一个文件夹www/admin,我想用.htpasswd文件限制对它的访问,我已将此代码平衡到www/admin/.htaccess文件中: AuthName "Access denied" AuthUserFile /real_path_server/www/admin/.htpasswd AuthType Basic Require valid-user 我

我在服务器上的www文件夹下有我的.htaccess,这个文件包含一些重定向规则,没有其他内容

在www文件夹下,我有另一个文件夹www/admin,我想用.htpasswd文件限制对它的访问,我已将此代码平衡到www/admin/.htaccess文件中:

  AuthName "Access denied"
  AuthUserFile /real_path_server/www/admin/.htpasswd
  AuthType Basic
  Require valid-user
我测试了一切正常,没有登录名和密码我无法访问/admin

问题是这样的,当我去网站的时候,身份验证窗口出现了,每个人都可以看到这个窗口,这不是我想要的行为。 如果我想访问websiteUrl/admin,则必须进行身份验证,而不是在我想访问websiteUrl时

      www
       |---admin
       |     |
       |     |----.htaccess (2)
       |     
       |
       |
       |.htaccess (1)  
.htaccess(1)中的代码

在.htaccess2中

          AuthName "Access denied"
          AuthUserFile /real_path_server/www/admin/.htpasswd
          AuthType Basic
          Require valid-user
感谢您的帮助

Apache.htaccess文件“级联”。这意味着父目录中的.htaccess文件设置的所有规则将应用于所有子目录。您不能通过添加没有该规则的.htaccess文件来删除子目录中的规则,但可以通过在子目录的.htaccess文件中添加另一个值来覆盖该规则

我确信还有另一个Apache配置,您可能无法看到或访问。您正在使用共享的web托管服务器吗?这是您自己的本地服务器吗?您有根访问权限的VPS/专用服务器

如果您使用的是共享服务器,我建议您致电他们的技术支持,因为他们可能非常了解他们的主要apache配置

也只是一个快速提示。我注意到在上面的htaccess配置中,您的.htpasswd文件位于一个公开可用的目录中。建议您将.htpasswd文件放在非公共(不可通过web访问)目录中,并在.htaccess文件中写入.htpasswd文件的完整路径

通常,这不是一个问题,也不是必需的,因为大多数web托管服务提供商将在其“主”apache配置文件中添加一条规则,不允许访问(从web)以.ht*开头的任何文件。但并不是所有人都这样,所以要小心点;)


例如,使用您当前的配置,我可以直接在我的地址栏中键入此项,并查看您的.htpasswd文件的内容,如下图所示--如果您的web托管服务提供商没有考虑此意外情况,它会将您的.htpasswd文件的内容吐到我的屏幕上,在那里我可以看到可用的用户名,以及它们模糊的密码。这只是安全问题。希望这有帮助

默认情况下,htaccess基于文件夹。仔细检查是否有.htaccess进入Web服务器的tje根目录

删除(1)如果不需要谢谢回答,但我不能,因为有rewrile规则,如果删除它,我必须更改所有php文件中的所有URL。RewriteRule可能是问题的根源,请至少发布它们。对于测试rename
.htaccess(1)
转到其他内容,然后在新浏览器中尝试。这会影响所有网站。我不理解您的评论。我在共享服务器中。如果我没有这篇文章的答案,我会打电话给他们谢谢。如果是你的主机提供商造成了问题,请检查并为其他有类似问题的人标记此答案为正确。
          AuthName "Access denied"
          AuthUserFile /real_path_server/www/admin/.htpasswd
          AuthType Basic
          Require valid-user