18

这里的情况...

我有一个计划运行的 cron 作业,用于备份我的数据库。由于 php 的安装方式,我不得不使用 lynx 来访问执行备份的 php 脚本。

因为这个脚本必须存在于我的 public_html 文件夹中,所以我想拒绝所有请求,除了直接来自我的服务器的请求(即:localhost)。另外,我假设我将来自的 ip 是 127.0.0.1。我不确定这是否属实,但我想不出在这种情况下我的 ip 还会是什么。我对 cron 作业运行并从 127.0.0.1 访问脚本是否正确?

这是我的 .htaccess 的样子:

order allow,deny
deny from all
allow from 127.0.0.1

结果,我不断收到 403 Forbidden。这就是我想为除了我自己以外的所有人做的事情。也许我正在以错误的方式解决这个问题......有没有人看到我做错了什么?

4

5 回答 5

32

反过来使用顺序,即:

order deny,allow
deny from all
allow from 127.0.0.1
于 2009-08-15T06:05:49.477 回答
8

需要本地

如果以下任一条件为真,则本地提供者允许访问服务器:

  • 客户端地址匹配 127.0.0.0/8
  • 客户地址是::1
  • 连接的客户端和服务器地址都相同

这允许一种方便的方式来匹配源自本地主机的连接:

Require local

于 2016-11-04T21:44:58.467 回答
1

Leo的回答解决了我的问题。这是我设置的,因此我可以阻止直接访问图像:

<IfModule mod_rewrite.c>
<Files ~ "\.(jpg|jpeg|png|gif|pdf|txt|bmp|mp4|mov|ogg|wmv|webm|flv|mpg|mp2|mpeg|mpe|mpv|m4p|m4v|mp3|wav|acc|oga|m4a)$">
   order deny,allow
   deny from all
   Require local
   allow from all
</Files>
</IfModule>

我不想输入ip,以防本地ip稍后更改

于 2019-07-14T13:18:07.790 回答
0

在我添加以下内容之前,这里的所有答案都不允许我访问http://localhost:8888/ :

allow from localhost

所以就我而言,这是我的整个.htaccess文件:

order deny,allow
deny from all
# my IP
allow from xx.xx.xx.xx (use your own IP address here)
# Local development
allow from localhost

#代码注释。该文件只允许我从我的浏览器在线(IP)和本地本地访问该站点。

请记住,使用order deny,allow. 你先把deny那些放在你的文件中,然后把allows 放在下面。

于 2019-08-11T21:44:12.897 回答
0

尝试使用以下内容在 /assets/ 文件夹中添加 .htaccess 文件:

Options +Indexes
# or #
IndexIgnore *

这样,您将在浏览器中看到您的文件夹为空。

于 2020-02-07T07:30:17.727 回答