.htaccess 拒绝所有人
Posted
技术标签:
【中文标题】.htaccess 拒绝所有人【英文标题】:.htaccess deny from all 【发布时间】:2012-03-19 10:36:37 【问题描述】:我复制了一个旧应用程序并将其重命名为 New_application。我想访问 New_application 文件夹中的 .htaccess 文件。当我用文本编辑器打开它时,它只显示“Deny from all
”。我试图在我的旧应用程序中打开 .htaccess,它也显示“Deny from all
”。我记得我以前可以编辑它,但不确定我现在不能。有什么想法吗?非常感谢。
【问题讨论】:
【参考方案1】:@gasp´s answer 的一个小替代方案是简单地输入您运行它的实际域名。文档:https://httpd.apache.org/docs/2.4/upgrading.html
在以下示例中,没有身份验证,所有主机都在 允许 example.org 域访问;所有其他主机都被拒绝 访问。
Apache 2.2 配置:
Order Deny,Allow
Deny from all
Allow from example.org
Apache 2.4 配置:
Require host example.org
【讨论】:
【参考方案2】:此语法已随较新的 Apache HTTPd 服务器发生变化,请参阅upgrade to apache 2.4 doc 了解完整详情。
2.2 配置语法是
Order deny,allow
Deny from all
现在是2.4配置
Require all denied
因此,这个 2.2 语法
order deny,allow
deny from all
allow from 127.0.0.1
现在不会写
Require local
【讨论】:
【参考方案3】:Deny from all
是一个 .htaccess 命令(您尝试查看的文件的实际内容)。不否认能够编辑文件。只需在选择的文本查看器中重新打开 .htaccess 文件并根据需要进行更改,保存,然后将其重新上传到您选择的文件夹。
虽然我认为你无意中阻止了你自己在上传后查看所述应用程序。
我会这样做:
order deny,allow
deny from all
allow from 127.0.0.1
这将拒绝除allow from
行中的 IP 之外的所有人,您可以更改 IP 以匹配您可以从 http://www.whatismyip.com/ 或类似站点获得的 IP。
【讨论】:
不用说,但要警惕共享 IP 地址!order deny, allow
应该是 order deny,allow
(,
后面没有空格)否则某些 Apache 版本会显示服务器错误,因为 order takes one argument, 'allow,deny', 'deny,allow'
(说 Apache 日志)
对于 windows 用户,请确保您通过从某些文本编辑器中另存为文件的方式将文件名准确地设置为 .htaccess
,因为 windows 资源管理器不允许您删除文件名。这对我来说是个问题
好吧,windows 确实允许你这样做,但你必须绕道而行。例如通过终端(或 CMD),您还可以选择显示所有隐藏的文件,以及显示文件扩展名,您可以从中创建一个 .htaccess.txt ,然后您可以稍后删除 .txt ,因为您显示扩展。此外,由于您显示隐藏文件,您可以在资源管理器中选择和删除文件。然后正如我所说,您也可以在命令行中执行此操作。所以这不是不可能的,但 Windows 有时确实会让它变得困难。【参考方案4】:
您可以编辑它。该文件的内容实际上是“拒绝所有人”,这是一个 Apache 指令:http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#deny
【讨论】:
以上是关于.htaccess 拒绝所有人的主要内容,如果未能解决你的问题,请参考以下文章
使用 .htaccess 拒绝访问目录中的所有 PHP 文件