Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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,我在一个名为/mp3/的目录中有mp3,我希望只能从网站上另一个目录/main/中的另一个页面.php访问它们。 没有来自外部的直接链接 所有页面都是用php 我把这段代码放在.htaccess目录下的/mp3/文件中 Order deny,allow deny from all allow from 127.0.0.1 allow from localhost allow from mydomain.com allow from 123.45.678.90 # that's myserve

我在一个名为
/mp3/
的目录中有mp3,我希望只能从网站上另一个目录
/main/
中的另一个
页面.php
访问它们。 没有来自外部的直接链接

所有页面都是用
php

我把这段代码放在
.htaccess
目录下的
/mp3/
文件中

Order deny,allow
deny from all

allow from 127.0.0.1
allow from localhost
allow from mydomain.com
allow from 123.45.678.90  # that's myserver's IP address (real one used in code)

Satisfy Any
但这些都不管用。 但是,如果我使用WARE I am的IP地址,它确实可以工作

allow from 1.2.3.4  # my internet connection (real one used in code)
但这意味着它适用于任何人及其IP地址

我错过了什么?这是否仅适用于某些服务器?
如何使其使用服务器的IP地址而不是我的IP地址?

将要保护的文件从公用文件夹中移出。这样,它们只能通过脚本访问

-root
--mp3s
--public_html
---main
----index.php
----page.php

将要保护的文件移出公用文件夹。这样,它们只能通过脚本访问

-root
--mp3s
--public_html
---main
----index.php
----page.php
您试图限制“推荐”而不是直接访问

拒绝来自IP限制的所有访问,无论是由page.php引用还是通过在浏览器的URL位置栏中键入。如果您试图限制转介,可以尝试使用以下方法:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain.com/ [NC]
RewriteRule ^mp3/ - [L,F]
但是请注意,可以欺骗推荐人。

您试图限制“推荐”而不是直接访问

拒绝来自IP限制的所有访问,无论是由page.php引用还是通过在浏览器的URL位置栏中键入。如果您试图限制转介,可以尝试使用以下方法:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yourdomain.com/ [NC]
RewriteRule ^mp3/ - [L,F]

但是请注意,引用者可能会被欺骗。

在您的
.htaccess

<Files ~ ".mp3$">
    Order allow,deny
    Deny from all
</Files>

命令允许,拒绝
全盘否定

这将不允许从web服务器直接访问带有
.mp3
的任何文件。

.htaccess

<Files ~ ".mp3$">
    Order allow,deny
    Deny from all
</Files>

命令允许,拒绝
全盘否定

这将不允许从web服务器直接访问带有
.mp3
的任何文件。

将此代码放在
mp3/.htaccess
文件中:

RewriteEngine on
RewriteBase /mp3/

RewriteCond %{HTTP_REFERER} !^https?://(localhost|(www\.)?mydomain\.com)/ [NC]
RewriteRule ^ - [F]

将此代码放在您的
mp3/.htaccess
文件中:

RewriteEngine on
RewriteBase /mp3/

RewriteCond %{HTTP_REFERER} !^https?://(localhost|(www\.)?mydomain\.com)/ [NC]
RewriteRule ^ - [F]
查看添加到.htaccess文件中的“热链接保护”。您可以将其设置为.mp3文件扩展名,并禁止任何外国网站或直接从浏览器访问。你甚至可以在自己的网站上限制访问,但我看不出这有多大用处

差不多

RewriteEngine on
Options +FollowSymlinks
# hotlink protection and allowed list
# don't forget to add https: to allow accesss for any with SSL
##  uncomment following line to PERMIT direct browser access of mp3 files
#RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$     [NC]
RewriteRule .*\.mp3$ - [F,NC]
查看添加到.htaccess文件中的“热链接保护”。您可以将其设置为.mp3文件扩展名,并禁止任何外国网站或直接从浏览器访问。你甚至可以在自己的网站上限制访问,但我看不出这有多大用处

差不多

RewriteEngine on
Options +FollowSymlinks
# hotlink protection and allowed list
# don't forget to add https: to allow accesss for any with SSL
##  uncomment following line to PERMIT direct browser access of mp3 files
#RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com(/)?.*$     [NC]
RewriteRule .*\.mp3$ - [F,NC]


如果您不希望直接访问某些内容,那么不要将其放在您的文档根目录中。我认为我没有根目录之外的访问权限,那么至少将它们放在一些高度模糊的子目录中,并且永远不要在发送到客户机的任何内容中引用该目录。当您不知道某个内容的地址/位置时,无法访问该内容。@MarcB从来都不是一个好的解决方案……如果您不想直接访问某个内容,请不要将其放在文档根目录中。我认为我无法访问根目录之外的内容,至少可以将其放在一些高度模糊的子目录中,并且永远不要在发送到客户端的任何内容中引用该目录。当您不知道某个文件的地址/位置时,无法访问该文件。@MarcB从来都不是一个好的解决方案……我认为我无法访问外部根目录。我可以将文件夹设为私有文件夹吗?如果是这样的话,请看Jon Lin的回答我认为我无权访问外部根目录。我可以将文件夹设为私有文件夹吗?在这种情况下,请看Jon Lin的回答:试图阻止从外部直接访问。@gravityboy当你有一个链接到mp3文件的页面时,为了加载该文件,必须从外部直接访问该页面,这就是为什么你不能让它与
Deny
一起工作,除非你添加了自己的IPI测试代码,我可以直接链接到mp3并获取它。这意味着我不能将访问权限仅从一个页面链接到另一个页面?你的代码到底是什么意思?如果referer不是mydomain,则不转到mp3文件夹?尝试停止从外部直接访问。@gravityboy当您有一个页面链接到mp3中的文件时,为了加载该文件,必须从外部直接访问该文件,这就是为什么你不能让它与
Deny
一起工作,除非你添加了自己的IPI测试代码,我可以直接链接到mp3并获取它。这意味着我不能将访问权限仅从一个页面链接到另一个页面?你的代码到底是什么意思?如果推荐人不是mydomain,则不转到mp3文件夹?是,但我希望允许从服务器上的其他页面访问。我只是停止从外部直接访问链接。是的,但我想允许从服务器上的其他页面访问。我刚停止从外部直接访问链接。我在谷歌上搜索了
热链接保护
,发现了这个
http://www.htaccesstools.com/hotlink-protection/
和他们的代码工作我在谷歌上搜索了
热链接保护
并找到了这个
http://www.htaccesstools.com/hotlink-protection/
他们的代码工作正常