.htaccess拒绝目录访问
我想限制对我的根目录的访问,以便其他人不能直接在浏览器中访问这些目录中的文件。我遇到的问题现在是根目录中的页面,例如index.php要求提供密码,而.htaccess位于目录的根目录中,而不是域的根目录。这会阻止索引文件访问这些目录中的包含文件。.htaccess拒绝目录访问
什么是简单的方法来锁定从浏览器访问这些目录,同时仍允许根目录中的文件访问它们和访问者能够访问根页面而不需要密码。我想尽可能地知道他们的网站是可见的,但是如果有人开始在子目录中窥探并窃取代码,它会拒绝它们,但允许网页访问它们。
我已经厌倦了这个在我一直想限制直接浏览器访问的每个目录中。
AuthType Basic
AuthName "Administrator"
AuthUserFile /home2/mesquiu0/.htpasswds./htpasswd
Require valid-user
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
所有你需要做的是一个额外的空行添加以下行来禁用索引目录:
Options -Indexes
查看文档了解更多信息:http://httpd.apache.org/docs/current/mod/core.html#options
只要允许脚本匹配php,aspx等。
apache 2.2
AuthType Basic
AuthName "Administrator"
AuthUserFile /home2/mesquiu0/.htpasswds./htpasswd
Require valid-user
#Forbid access to any files except from localhost, because of Order Deny,Allow, Allow gets applied later.
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
#Allow access to files matching index.php
<Files index.php>
Order Allow,Deny
Allow from all
</Files>
在Apache 2.4中,规则已更改,正确的语法是使用Require all denied
而不是Deny from all
。
这是Apache 2.4
AuthType Basic
AuthName "Administrator"
AuthUserFile /home2/mesquiu0/.htpasswds./htpasswd
Require valid-user
Require host 127.0.0.1
#Allow access to files matching index.php
<Files index.php>
Require all granted
</Files>
谢谢你的建议,我会给你一个镜头。我的网络主机在Apache 2.2上,这很令人惊讶,因为它们通常很好地保持最新状态。只是一个小问题。我是否需要将它放在根目录或每个目录中,因为我现在拥有它,并假设我有多个文件扩展名,我只需添加一个|添加一个新的? – Texan78
我试过把它放在每个目录中,以及在根目录中试用它。如果我把它放在目录中,它仍然不会让索引访问这些文件,并要求登录。如果我把它放在根中,它会锁定整个站点。我只需要锁定目录,但仍然允许我选择登录到这些目录,同时允许根目录中的文件访问这些子目录中的文件。 – Texan78
请检查现在!如果它仍然不起作用,我会要求你在你的问题中更新你的htaccess内容和目录结构。 –
我将在给予射门偏出。我以前尝试过,清除缓存并重新启动浏览器,我仍然可以访问目录中的文件。我可能已经完成了+索引,这可能是为什么。感谢您的建议。 – Texan78
试过这两个在目录和只在根目录,如果你右键单击索引或根目录中的任何文件,并单击一个链接,它会显示在该目录中的文件在浏览器,这是我想要的避免。任何人都可以直接从浏览器访问子目录,同时仍允许根目录或其他子目录中的文件访问他们可能包含的文件。 – Texan78
更新,这适用于限制对目录的访问,但是,如果有人查看文件的来源并点击链接,例如样式表。它将允许他们查看该目录中的文件。如果我只是试图查看目录结构,那么它会阻止它们。我需要他们不能访问目录中的文件,同时仍然允许将文件包含在某些需要它们的文件中。 – Texan78